Data Structures and Algorithms
88 libraries in this category
Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves.
A small, powerful and flexible merge library.
Persistent, fast ordered map using tree heaps.
Functions that operate on slices; like `package strings` but adapted to work with slices.
Fast, zero-allocation, lexicographical-order-preserving packing of native types to bytes
Binary packer and unpacker helps user build custom binary stream
Golang set data structure with bonus bit-twiddling functions
Go package implementing buffers for handling various datatypes easily
A Go implementation of the Elias-Fano encoding
Go package implementing compressed bitsets
Dense, zero-allocation, SIMD-enabled bitmap/bitset in Go
Go package implementing bitsets
Go package implementing Bloom filters
Bloom filters implemented in Go
Golang Bloom filter implementation
Yet another Bloomfilter implementation in Go, compatible with Java's Guava library
Probabilistic data structures for processing continuous, unbounded streams
Cuckoo filter: a comprehensive cuckoo filter, which is configurable and space optimized compared with other implements, and all features mentioned in original paper are available
Cuckoo filter: a good alternative to a counting bloom filter implemented in Go
Go implementation of a high performance, thread safe bloom filter
Algorithms and data structures.CLRS study
Collection of useful, performant, and thread-safe data structures
Go Data Structures. Containers, Sets, Lists, Stacks, Maps, BidiMaps, Trees, HashSet etc
Data structure and algorithm library for go, designed to provide functions similar to C++ STL
Iterator implementation to provide map and reduce functionalities
Go implementation of C++ STL iterators and algorithms
a thread-safe concurrent map for go, support using `interface{}` as key and auto scale up shards
Python-like dictionaries (dict) for Go
A persistent, map-like object for the Go programming language. Supports multiple embedded key-value stores
Go 1.18+ generic map interface for maps; safe maps; ordered maps; ordered, safe maps; etc
Highly concurrent drop-in replacement for `bufio.Writer`
Go implementation Count-Min-Log sketch: Approximately counting with approximate counters (Like Count-Min sketch but using less memory)
Finite-State Machine package
Go 1.18+ generics package inspired by Kotlin's Sequence and Map
Generic slice, map, set, iterator, and goroutine utilities
In-memory geo index
Determine how intervals relate to each other
Region quadtrees with efficient point location and neighbour finding
Generic tuple implementation for Go 1.18+
Go Data Structures using Go 1.18 generics
fractional api for Go
A comprehensive, reusable and efficient concurrent-safe generics utility functions and data structures library
Implementation of dataframes, series, and data wrangling methods for Go
ID type with marshalling to/from hash to prevent sending IDs to clients
HyperLogLog implementation with Sparse, LogLog-Beta bias correction and TailCut space reduction
Generic, zero-alloc, 100%-test covered quadtree
Pure, generic functions for slices
Zero allocation Nullable structures in one library with handy conversion functions, marshallers and unmarshallers
Nullable Go types that can be marshalled/unmarshalled to/from JSON
Null Types, Safe primitive type conversion and fetching value from complex structures
A highly optimized double-ended queue
Fast ring-buffer deque (double-ended queue)
Concurrent FIFO queue
An easy to use, lightweight, thread-safe and append-only in-memory data structure inspired by Apache Kafka
Multiple thread-safe, generic queue implementations for Go
Disjoint Set data structure implementation in Go
Thread-Safe and Non-Thread-Safe high-performance sets for Go
A useful Set collection implementation for Go
Simple set data structure implementation in Go using LinkedHashMap
Modern text indexing library for go
Go implementation of Adaptive Radix Tree
Go string comparison and edit distance algorithms library (Levenshtein, LCS, Hamming, Damerau levenshtein, Jaro-Winkler, etc.) compatible with Unicode
Levenshtein distance and similarity metrics with customizable edit costs and Winkler-like bonus for common prefix
Implementation to calculate levenshtein distance in Go
Multi-String Pattern Matching Algorithm for information retrieval
Tools for parse JSON-like logs for collecting unique fields and events
An implementation of prefix tree
Trie implementation in Go
Split byte streams into chunks, and arrange chunks into trees, with boundaries determined by content, not position
Space-efficient computation of Merkle root hashes and inclusion proofs
Very fast Go Skiplist implementation
Skiplist implementation in Go
Generic key-sorted map using a red-black tree under the hood
Go module that processes work concurrently and returns output in a channel in the order of input
FIFO Pipeline which parallels execution on each stage while maintaining the order of messages and results
An implementation of pipelines with fan-in and fan-out
First pure Go implementation of Ribbon filters (practically smaller than Bloom and Xor) for space-efficient approximate set membership queries
Convenient looping using Go's range-over-func feature
A high-performance, thread-safe generic concurrent hash map implementation with Swiss Map
HMap is a concurrent and secure, generic support Map implementation designed to provide an easy-to-use API
Combinatorial operations including permutations, combinations, and combinations-with-replacement
FSM for Go
Doubly-ended heap (min-max heap) with O(log n) access to both minimum and maximum elements
Simple, in memory, zero dependency and battle tested, thread-safe deferred queue
Distributed, Fault-tolerant task queue
A generic, thread-safe doubly linked list with full iterator support and an intrusive singly linked list for embedded use; a feature-rich replacement for container/list
Topological sort lib,Sorting and pruning of DAG graphs
Generic pipeline functions for concurrent processing