101 Repos
Fundamental data structures and their implementations.
Explore 101 awesome GitHub repositories matching part of an awesome list · Data Structures. Refine with filters or upvote what's useful.
Protocol Buffers ist ein sprachneutraler, plattformunabhängiger Mechanismus zur Serialisierung strukturierter Daten. Es bietet eine schema-gesteuerte Toolchain, die deklarative Datendefinitionen in typsicheren Quellcode kompiliert und so eine konsistente Kommunikation und stark typisierte API-Verträge über Dienste hinweg ermöglicht, die in verschiedenen Programmiersprachen geschrieben sind. Das Projekt zeichnet sich durch ein hocheffizientes binäres Wire-Format aus, das tag-basiertes Encoding und eine Komprimierung von Ganzzahlen mit variabler Breite nutzt, um Payload-Größe und Verarbeitungs-Overhead zu minimieren. Es unterstützt ein robustes, evolutionäres Schema-Management, das es Entwicklern ermöglicht, Datenstrukturen inkrementell zu aktualisieren und dabei Abwärts- und Aufwärtskompatibilität zu wahren. Dies wird zusätzlich durch ein versioniertes Edition-System unterstützt, das Feature-Sets und Serialisierungslogik über verteilte Softwarekomponenten hinweg verwaltet. Über die binäre Kern-Serialisierung hinaus umfasst das Projekt Funktionen für die kanonische JSON-Konvertierung mit Schema-Validierung, granulare Symbol-Sichtbarkeitskontrolle und Feld-Präsenzverfolgung, um zwischen Standard- und nicht gesetzten Werten zu unterscheiden. Es bietet zudem spezialisierte Optimierungen, wie Arena-basiertes Speichermanagement für C++-Implementierungen, um die Performance bei der Erstellung und Bereinigung komplexer Nachrichtenbäume zu verbessern.
Standardized data interchange format for structured data.
This project is a collection of portable, header-only C functions designed for integration into software projects without complex build dependencies or external linking requirements. It provides a suite of low-level utilities for graphics, audio, and data management, focusing on direct memory manipulation and zero-dependency portability. By utilizing a single-header distribution model, the library simplifies dependency management while allowing developers to maintain full control over memory allocation and binary size through compile-time configuration. The library distinguishes itself by off
Typesafe dynamic arrays and hash tables.
This is a persistent data structure library for JavaScript that provides collections which prevent the direct mutation of objects and arrays. It serves as an immutable state management tool and functional programming utility, ensuring that data remains unchanged after creation to simplify change detection and state tracking. The library enables the maintenance of application state by producing new versions of data structures during updates. It focuses on efficient data comparison by checking actual content instead of memory references and supports a functional programming workflow to prevent
Immutable data collections for JavaScript.
This project is a computer science educational resource and a library of common data structures and algorithms implemented in Swift. It serves as a practical reference for studying complexity and efficiency through solved algorithmic problems and conceptual guides. The collection includes implementations of linear and hierarchical data structures, such as stacks, queues, linked lists, and trees. It covers a wide range of computational patterns, including graph and pathfinding implementations, mathematical numerical methods, and data compression techniques. The project also provides implement
Educational algorithms and data structures.
ConcurrentQueue is a header-only C++ template library that provides a lock-free data structure for multi-producer multi-consumer thread communication. It functions as a synchronization primitive designed to coordinate data flow between concurrent execution units using atomic operations rather than traditional mutex locking. The library distinguishes itself through a design that minimizes contention and synchronization overhead. It utilizes sub-queue token mapping to distribute workloads across partitioned internal queues and supports bulk operations to transfer multiple data elements in singl
Lock-free multi-producer multi-consumer queue.
Awesome Emacs is a curated directory of community-driven resources, packages, and configurations designed to extend the functionality of the Emacs text editor. It serves as a comprehensive index for users seeking to transform their editor into a specialized development environment or a highly personalized productivity workspace. The collection highlights tools that enable deep customization of the Emacs experience, ranging from ergonomic key binding schemes and visual interface themes to advanced window management and navigation utilities. It provides a centralized reference for discovering e
Provides fundamental data structures for managing text, metadata, and buffer properties within the editor.
go-datastructures is a collection of thread-safe and lock-free data structures designed for high-performance concurrent applications in Go. It provides a modular library of specialized algorithmic toolsets, including a lock-free collection library and an immutable data structure library. The project distinguishes itself through a suite of persistent AVL trees and hash array mapped tries that use branch-copying to preserve previous versions. It also implements non-blocking hash maps, queues, and tries that enable linearizable snapshots and concurrent updates without the use of mutual exclusion
Collection of data structures.
uthash ist eine makrobasierte Datenstruktur-Bibliothek für C, die Header-only-Implementierungen von Hash-Tabellen, verketteten Listen, Stacks und dynamischen Arrays bereitstellt. Sie ermöglicht schlüsselbasierte Lookups und organisierte Datenspeicherung, ohne dass externe Bibliotheken gelinkt werden müssen. Die Bibliothek nutzt intrusives Linking, um Metadaten über Makros direkt in benutzerdefinierte Strukturen einzubetten. Dieser Ansatz ermöglicht die In-Place-Erweiterung von Strukturen, sodass Hash- und Link-Felder zu bestehenden Structs hinzugefügt werden können, ohne dass separate Speicherallokationen für Container-Knoten erforderlich sind. Das Projekt umfasst zudem spezialisiertes Speicher- und Datenstrommanagement, einschließlich kreisförmiger Puffer mit fester Größe für kontinuierliche Datenströme sowie String-Puffer mit automatischer Speicherverwaltung. Diese Hilfsmittel erleichtern die Datenverarbeitung in ressourcenbeschränkten Umgebungen und eingebetteten Systemen.
Generic hash and list structures.
Dieses Projekt ist eine Mengenlehre-Bibliothek für Go, die eine Datenstruktur zum Speichern eindeutiger Elemente jedes vergleichbaren Typs unter Verwendung von Generics bereitstellt. Sie dient als Tool zur Verwaltung eindeutiger Sammlungen und zur Durchführung mathematischer Operationen wie Schnittmengen und Differenzen. Die Bibliothek bietet synchronisierte Sammlungen, um Datenwettläufe bei gleichzeitigen Lese- und Schreibvorgängen zu verhindern. Sie unterstützt zudem das Konvertieren eindeutiger Sammlungen in und aus JSON-Arrays für Datenpersistenz und Netzwerkübertragung. Die Implementierung deckt Mitgliedschaftstests, das Klonen von Sammlungen und die Größenberechnung ab. Sie enthält Dienstprogramme zur Überprüfung der Mengengleichheit und zum Exportieren eindeutiger Sammlungen in sortierte Listen. Zusätzliche Funktionen umfassen kanalbasierte Iteration für die sequentielle Verarbeitung von Elementen.
Set collection implementation.
Diese Java-Concurrency-Bibliothek bietet eine Suite von Werkzeugen zur Verwaltung von Multi-Threaded-Ausführung, Synchronisation und Speicherkonsistenz. Sie dient als umfassendes Framework zur Implementierung gleichzeitiger Ausführung durch lock-freie Atomics, thread-sichere Sammlungen, Task-Koordinations-Primitive und Worker-Pools. Das Projekt enthält ein dediziertes Thread-Synchronisations-Toolkit mit Latches, Barrieren und Semaphoren, um das Timing und die Reihenfolge gleichzeitiger Aufgaben zu koordinieren. Es bietet zudem eine Suite an Concurrent-Collections wie Maps, Queues und Listen, die Datenaustausch ohne manuelle Sperren ermöglichen, sowie ein Framework für atomare Operationen für lock-freie Updates von Basistypen und Referenzen. Die Bibliothek deckt breite Funktionsbereiche ab, einschließlich Thread-Pool-Management zur Optimierung der Ressourcennutzung, Speichermodell-Analyse zur Sicherstellung der Datensichtbarkeit und verschiedene Sperrverwaltungsmechanismen zur Vermeidung von Race Conditions. Diese Werkzeuge unterstützen gemeinsam die Entwicklung von Multi-Threaded-Anwendungen, die konsistente Zustandsübergänge über gemeinsam genutzten Speicher hinweg aufrechterhalten.
Concurrent data structures and thread-safe implementations.
Wire ist ein plattformübergreifender Codegenerator und eine Implementierung von gRPC und Protocol Buffers. Er transformiert Schemadefinitionen in typsichere native Sprachbindungen für Kotlin, Swift und Java, um einen konsistenten Datenaustausch und die Kommunikation zwischen verteilten Systemen zu gewährleisten. Das Projekt bietet spezialisierte Tools für das Protocol-Buffer-Schema-Management, einschließlich der Möglichkeit, ungenutzte Typen zu entfernen und Felder nach Version zu filtern, um die endgültige Binary-Größe zu reduzieren. Es handhabt zudem das Namespace-Management und ermöglicht die Erstellung benutzerdefinierter Schema-Handler, um benutzerdefinierte Logik während der Kompilierungsphase auszuführen. Das Framework deckt ein breites Spektrum an Funktionen ab, einschließlich der Generierung von Dienstschnittstellen für synchrone und asynchrone Remote Procedure Calls, das Mapping von Schematypen auf native Sprachprimitive und die Serialisierung von Nachrichten in JSON. Es enthält zudem Unterstützung für die Generierung von Parcelable-Nachrichten und Mock-Clients für Tests.
Lightweight protocol buffer implementation.
Dollar is a functional programming library for Swift that provides a comprehensive toolkit for collection manipulation, string processing, mathematical calculations, and date and time management. It serves as a utility suite for filtering, aggregating, and restructuring arrays and dictionaries. The project implements functional programming patterns such as currying, memoization, and function composition. It also features a chainable wrapper interface that allows multiple data transformations to be applied sequentially before extracting a final result. The library covers a wide range of capab
Functional tool-belt for Swift collections.
This is an in-memory B-Tree data structure implementation for Go. It provides a memory-resident collection that maintains sorted elements to enable efficient retrieval, modification, and the management of sorted key-value maps. The project supports ordered mutable collections and sorted key-value stores, allowing for fast lookups, insertions, and deletions while preserving the sort order of keys. It provides capabilities for range searching within sorted memory structures and maintains the organization of datasets through self-balancing node splitting and recursive binary search.
B-Tree implementation.
RoaringBitmap is a Java-based library designed for the memory-efficient storage and high-speed querying of large sets of integers. It functions as an in-memory analytics tool that maintains compact data representations while supporting rapid set calculations, such as intersections, unions, and differences. The library distinguishes itself through a hybrid compression strategy that automatically selects between bitsets, sorted arrays, or run-length encoding based on the density of the data. It utilizes a two-level hierarchical index to provide constant-time random access lookups, ensuring perf
High-performance compressed bitmap implementation.
💻 A fast and flexible O(n) difference algorithm framework for Swift collection.
Fast O(n) difference algorithm for collections.
Simple Binary Encoding (SBE) - High Performance Message Codec
Low-latency binary message encoding format.
ClojureScript's persistent data structures and supporting API from the comfort of vanilla JavaScript
Persistent data structures for JavaScript.
A family of header-only, very fast and memory-friendly hashmap and btree containers.
Memory-efficient and fast hash maps and B-trees.
Roaring bitmaps in Go (golang), used by InfluxDB, Bleve, DataDog
Compressed bitmap implementation.
Postmodern immutable and persistent data structures for C++ — value semantics at scale
Immutable and persistent data structures.