184 रिपॉजिटरी
Collections of algorithms and structures for efficient data management.
Explore 184 awesome GitHub repositories matching part of an awesome list · Data Structures. Refine with filters or upvote what's useful.
Protocol Buffers is a binary serialization framework used to encode structured information into compact payloads to reduce network bandwidth and storage. It functions as a cross-language data interchange standard that enables different platforms and languages to exchange structured data using a shared schema. The project includes an interface definition language compiler that transforms schema definitions into type-safe source code for multiple target programming languages. This mechanism decouples data structures from specific language memory layouts and ensures consistent data handling acro
Language-neutral mechanism for serializing structured data.
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.
This project is a comprehensive container framework for Go that provides a suite of fundamental data structures and algorithms. It offers a standardized set of tools for managing, sorting, and traversing complex data collections, enabling developers to implement efficient storage and retrieval logic within their applications. The library distinguishes itself through an interface-driven design that allows for interchangeable use of different storage implementations. It supports custom ordering and sorting behavior through external comparison functions, which decouple the data structures from s
Comprehensive collection of containers, lists, and trees.
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.
Bleve is a search indexing engine library written in Go, designed to provide full-text search and document retrieval capabilities for embedded application data. It functions as a framework for indexing structured or unstructured information, allowing developers to build searchable collections that support complex query logic and data analysis. The engine distinguishes itself through a pluggable analysis pipeline that normalizes text before indexing, alongside support for vector similarity search to identify semantically related content. It utilizes finite-state transducer automata for efficie
Modern text indexing library.
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
High-performance, thread-safe data structure implementations.
This project is a comprehensive collection of computer science implementations and an algorithm tutorial repository. It serves as a study guide and reference for competitive programming, providing executable code examples that demonstrate fundamental algorithmic problem solving and mathematical computation. The library covers a wide range of specialized domains, including cryptography and security primitives, lossless data compression techniques, and computational geometry for spatial analysis. It also features implementations of machine learning models, linear algebra operations, and formal
Implements a hash table that uses open addressing to resolve collisions within a flat array.
Hatchet is an open-source durable workflow engine and task orchestration platform. It provides a framework for building and executing fault-tolerant, multi-step pipelines as directed acyclic graphs (DAGs), with automatic retries, scheduling, and real-time observability. The system is built around durable task checkpointing, which persists execution state after each step so work can resume from the last checkpoint after a worker crash or restart, and it supports event-driven task resumption that pauses a task until a matching external event arrives. The platform distinguishes itself through it
Distributed, fault-tolerant task queue.
Algodeck is an open-source collection of flash cards designed for reviewing algorithms, data structures, and system design concepts, specifically curated for technical interview preparation. The project organizes knowledge into atomic question-and-answer pairs and incorporates spaced repetition scheduling to optimize long-term memory retention. The flash card catalog covers a broad range of computer science topics, including classic sorting algorithms like quicksort and mergesort, data structure operations for arrays, trees, heaps, tries, and graphs, as well as bit manipulation techniques for
A set of flash cards covering arrays, trees, heaps, tries, and graphs with time and space complexity notes.
This is a collection of classical algorithms and data structures implemented as a header-only C++ library. It provides a suite of tools for general algorithm implementation, including data structure management, graph theory analysis, and string processing. The library is distinguished by its specialized toolkits for cryptographic hashing and encoding, featuring implementations of MD5, SHA-1, and Base64. It also includes advanced capabilities for high-performance string processing via suffix trees and arrays, as well as computational number theory for primality testing and arbitrary-precision
Provides a diverse set of data structures including hash tables, skip lists, and red-black trees.
यह प्रोजेक्ट Go के लिए एक सेट थ्योरी लाइब्रेरी है जो जेनेरिक्स का उपयोग करके किसी भी तुलनीय प्रकार के अद्वितीय तत्वों को स्टोर करने के लिए एक डेटा स्ट्रक्चर प्रदान करती है। यह अद्वितीय संग्रहों को मैनेज करने और इंटरसेक्शन और अंतर जैसे गणितीय ऑपरेशंस करने के लिए एक टूल के रूप में कार्य करती है। यह लाइब्रेरी समवर्ती रीड और राइट ऑपरेशंस के दौरान डेटा रेस को रोकने के लिए सिंक्रोनाइज़्ड संग्रह प्रदान करती है। यह डेटा पर्सिस्टेंस और नेटवर्क ट्रांसमिशन के लिए अद्वितीय संग्रहों को JSON एरे में बदलने और उनसे वापस बदलने का भी समर्थन करती है। इम्प्लीमेंटेशन मेंबरशिप टेस्टिंग, कलेक्शन क्लोनिंग और साइज कैलकुलेशन को कवर करता है। इसमें सेट समानता को सत्यापित करने और अद्वितीय संग्रहों को सॉर्ट की गई सूचियों में निर्यात करने के लिए यूटिलिटीज शामिल हैं। अतिरिक्त क्षमताओं में वस्तुओं के अनुक्रमिक प्रसंस्करण के लिए चैनल-आधारित इटरेशन शामिल है।
High-performance set implementation with thread-safe options.
Wire is a cross-platform code generator and implementation of gRPC and Protocol Buffers. It transforms schema definitions into type-safe native language bindings for Kotlin, Swift, and Java to ensure consistent data exchange and communication between distributed systems. The project provides specialized tools for protocol buffer schema management, including the ability to prune unused types and filter fields by version to reduce final binary sizes. It also handles namespace management and allows for the creation of custom schema handlers to execute user-defined logic during the compilation ph
Lightweight protocol buffer implementation for Android and Java.
This project is a pedagogical implementation of a hash table in C, built from scratch using open addressing and linear probing for collision resolution. It serves as a computer science algorithm demo, demonstrating how to construct a fundamental key-value store at a low level. The implementation covers the core operations of an associative array: inserting a key-value pair, looking up a value by its key, and deleting a pair. It uses a hash function to compute storage locations, maps hash values to array indices with the modulo operator, and resolves collisions by scanning sequentially through
Stores all key-value pairs directly in a contiguous array, using probing to resolve collisions.
This PHP data collection library is a functional data wrapper and array manipulation framework. It converts arrays, JSON strings, and iterables into chainable collection objects designed for advanced filtering, sorting, and transformation. The library is distinguished by its ability to dynamically extend functionality through the registration of custom methods via closures. It also provides specialized capabilities for hierarchical data modeling, allowing flat datasets with parent-child identifiers to be reconstructed into nested tree structures. The toolkit covers a broad surface of data ma
Flips keys and values, flattens nested arrays, or expands key paths into multi-dimensional structures.
This library provides a framework for managing hierarchical data structures within relational databases using the nested set model. It integrates directly with the Laravel Eloquent object-relational mapping layer, allowing developers to store, query, and manipulate complex parent-child relationships within standard database tables. The package distinguishes itself by implementing boundary-based indexing to represent tree depth and node containment. This approach enables the retrieval of entire branches or specific ancestors, descendants, and siblings through optimized database queries rather
Implementation of tree data structures in relational databases.
Xan is a command-line tool and data transformation engine for processing CSV, TSV, and JSONL datasets. It functions as a processor for compressed files, enabling random access and seeking within gzipped and Zstd files, and serves as a converter for specialized bioinformatics data formats. The tool handles large datasets without requiring full memory loads by utilizing stream-based processing. It provides capabilities for merging, sorting, and deduplicating massive files, as well as converting data between various tabular formats. The project covers a broad range of data wrangling and analysi
Rotates data orientation or reshapes columns into rows and vice versa.
IronCalc is an XLSX spreadsheet engine and formula evaluator designed to compute numerical expressions and manage workbook structures. It utilizes a logic engine compatible with industry standards to evaluate formulas and manage cell dependencies. The project provides a comprehensive suite of specialized toolkits, including a financial calculation library for bond pricing and net present value, and an engineering math toolkit for complex number arithmetic and Bessel functions. It also features a web-based spreadsheet interface for creating and formatting workbooks. The engine covers a broad
Swaps the orientation of a range by flipping rows into columns and columns into rows.
qsv is a high-performance command line toolkit for querying, transforming, and analyzing comma-separated value files. It functions as a data wrangling interface and a tabular data profiler, featuring a query engine capable of executing SQL statements and joins directly on flat files without requiring a database. The project is distinguished by its ability to process massive datasets that exceed available system memory. This is achieved through disk-based external memory processing, including multithreaded merge sorting, on-disk hash tables for deduplication, and lightweight file indexing for
Swaps the rows and columns of a dataset to transpose the tabular structure.
Output complex, flexible, AJAX/RESTful data structures.
Converts complex data structures to JSON.
Simple Binary Encoding (SBE) - High Performance Message Codec
High-performance codec for binary message serialization.