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