101 repository-uri
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 este un mecanism neutru față de limbaj și platformă pentru serializarea datelor structurate. Oferă un toolchain bazat pe schemă care compilează definiții de date declarative în cod sursă type-safe, permițând o comunicare consistentă și contracte API puternic tipizate între servicii scrise în diferite limbaje de programare. Proiectul se distinge printr-un format binar de rețea extrem de eficient care utilizează codificarea bazată pe tag-uri și compresia întregilor cu lățime variabilă pentru a minimiza dimensiunea payload-ului și overhead-ul de procesare. Suportă gestionarea robustă a schemelor evolutive, permițând dezvoltatorilor să actualizeze structurile de date incremental, menținând în același timp compatibilitatea inversă și înainte. Acest lucru este susținut în continuare de un sistem de ediții versionate care gestionează seturile de funcționalități și logica de serializare între componentele software distribuite. Dincolo de serializarea binară de bază, proiectul include capabilități pentru conversia JSON canonică cu validarea schemei, controlul granular al vizibilității simbolurilor și urmărirea prezenței câmpurilor pentru a distinge între valorile implicite și cele nesetate. De asemenea, oferă optimizări specializate, cum ar fi gestionarea memoriei bazată pe arenă pentru implementările C++, pentru a îmbunătăți performanța în timpul creării și curățării arborilor de mesaje complecși.
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 is a macro-based data structure library for C that provides header-only implementations of hash tables, linked lists, stacks, and dynamic arrays. It allows for key-based lookups and organized data storage without requiring external library linking. The library uses intrusive linking to embed metadata directly into user-defined structures via macros. This approach enables in-place structure extension, allowing hash and link fields to be added to existing structs without separate memory allocations for container nodes. The project also covers specialized memory and data stream managemen
Generic hash and list structures.
Acest proiect este o bibliotecă de teoria mulțimilor pentru Go care oferă o structură de date pentru stocarea elementelor unice de orice tip comparabil, folosind generice. Servește ca instrument pentru gestionarea colecțiilor unice și efectuarea de operații matematice precum intersecții și diferențe. Biblioteca oferă colecții sincronizate pentru a preveni data race-urile în timpul operațiunilor concurente de citire și scriere. De asemenea, suportă conversia colecțiilor unice către și dinspre array-uri JSON pentru persistența datelor și transmiterea în rețea. Implementarea acoperă testarea apartenenței, clonarea colecțiilor și calcularea dimensiunii. Include utilitare pentru verificarea egalității mulțimilor și exportarea colecțiilor unice în liste sortate. Capabilitățile suplimentare includ iterarea bazată pe canale pentru procesarea secvențială a elementelor.
Set collection implementation.
Această bibliotecă de concurență Java oferă o suită de instrumente pentru gestionarea execuției multi-threaded, sincronizării și consistenței memoriei. Servește ca un framework cuprinzător pentru implementarea execuției concurente prin atomice lock-free, colecții thread-safe, primitive de coordonare a sarcinilor și pool-uri de worker-i. Proiectul include un toolkit dedicat de sincronizare a thread-urilor, cu latch-uri, bariere și semafoare pentru a coordona sincronizarea și ordinea sarcinilor concurente. Oferă, de asemenea, o suită de colecții concurente de map-uri, cozi și liste care permit partajarea datelor fără blocare manuală, alături de un framework de operațiuni atomice pentru actualizări lock-free la tipuri și referințe de bază. Biblioteca acoperă domenii largi de capabilități, inclusiv gestionarea pool-urilor de thread-uri pentru optimizarea utilizării resurselor, analiza modelului de memorie pentru a asigura vizibilitatea datelor și diverse mecanisme de gestionare a blocărilor pentru a preveni race condition-urile. Aceste instrumente susțin colectiv dezvoltarea aplicațiilor multi-threaded care mențin tranziții de stare consistente în memoria partajată.
Concurrent data structures and thread-safe implementations.
Wire este un generator de cod cross-platform și o implementare de gRPC și Protocol Buffers. Transformă definițiile de schemă în binding-uri de limbaj nativ type-safe pentru Kotlin, Swift și Java, pentru a asigura schimbul consistent de date și comunicarea între sistemele distribuite. Proiectul oferă instrumente specializate pentru gestionarea schemei protocol buffer, inclusiv posibilitatea de a elimina tipurile neutilizate și de a filtra câmpurile după versiune pentru a reduce dimensiunile finale ale binarului. De asemenea, gestionează namespace-urile și permite crearea de handlere de schemă custom pentru a executa logica definită de utilizator în timpul fazei de compilare. Framework-ul acoperă o gamă largă de capabilități, inclusiv generarea de interfețe de serviciu pentru apeluri de procedură remote sincrone și asincrone, maparea tipurilor de schemă la primitivele limbajului nativ și serializarea mesajelor în JSON. Include, de asemenea, suport pentru generarea de mesaje parcelable și clienți mock pentru testare.
Lightweight protocol buffer implementation.
Dollar este o bibliotecă de programare funcțională pentru Swift care oferă un toolkit cuprinzător pentru manipularea colecțiilor, procesarea șirurilor, calcule matematice și gestionarea datei și orei. Servește ca o suită de utilitare pentru filtrarea, agregarea și restructurarea array-urilor și dicționarelor. Proiectul implementează tipare de programare funcțională precum currying, memoization și compunerea funcțiilor. De asemenea, dispune de o interfață wrapper înlănțuibilă care permite aplicarea secvențială a mai multor transformări de date înainte de extragerea unui rezultat final. Biblioteca acoperă o gamă largă de domenii de capabilități, inclusiv igienizarea textului și conversia de carcase (casing), operațiuni cu expresii regulate și calculul valorilor matematice precum factoriale și divizori. Include, de asemenea, instrumente pentru parsarea timestamp-urilor Unix și calcularea decalajelor de timp relative. Toolkit-ul extinde tipurile bibliotecii standard Swift cu metode generice pentru transformarea și agregarea datelor.
Functional tool-belt for Swift collections.
Aceasta este o implementare a structurii de date B-Tree în memorie pentru Go. Oferă o colecție rezidentă în memorie care menține elementele sortate pentru a permite regăsirea, modificarea și gestionarea eficientă a map-urilor sortate de tip cheie-valoare. Proiectul suportă colecții mutabile ordonate și stocuri sortate de tip cheie-valoare, permițând căutări, inserări și ștergeri rapide, păstrând în același timp ordinea sortării cheilor. Oferă capabilități pentru căutarea în intervale în cadrul structurilor de memorie sortate și menține organizarea seturilor de date prin divizarea nodurilor cu auto-echilibrare și căutare binară recursivă.
B-Tree implementation.
RoaringBitmap is a compressed integer set library designed for memory-efficient storage and high-speed in-memory analytics. It provides a professional implementation of the Roaring Bitmap format to maintain compact representations of integer collections. The project features a standardized binary serialization format that enables the exchange of compressed bitmap data across different programming languages and hardware architectures. This allows for consistent data portability and cross-language data exchange. The library performs rapid logical set operations, including intersections, unions
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.