Data Structures and Algorithms Go Libraries Ranking
Explore and compare Data Structures and Algorithms libraries from awesome-go.
85 repositories, updated daily.
- Go Data Structures. Containers, Sets, Lists, Stacks, Maps, BidiMaps, Trees, HashSet etc.
- Collection of useful, performant, and thread-safe data structures.
- Thread-Safe and Non-Thread-Safe high-performance sets for Go.
- Implementation of dataframes, series, and data wrangling methods for Go.
- Probabilistic data structures for processing continuous, unbounded streams.
- Cuckoo filter: a good alternative to a counting bloom filter implemented in Go.
- Data structure and algorithm library for go, designed to provide functions similar to C++ STL.
- HyperLogLog implementation with Sparse, LogLog-Beta bias correction and TailCut space reduction.
- Go string comparison and edit distance algorithms library (Levenshtein, LCS, Hamming, Damerau levenshtein, Jaro-Winkler, etc.) compatible with Unicode.
- Implementation to calculate levenshtein distance in Go.
- Dense, zero-allocation, SIMD-enabled bitmap/bitset in Go.
- Multiple thread-safe, generic queue implementations for Go.
- 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.
- A high-performance, thread-safe generic concurrent hash map implementation with Swiss Map.
- Binary packer and unpacker helps user build custom binary stream.
- Golang set data structure with bonus bit-twiddling functions.
- Go implementation of a high performance, thread safe bloom filter.
- An easy to use, lightweight, thread-safe and append-only in-memory data structure inspired by Apache Kafka.
- Region quadtrees with efficient point location and neighbour finding.
esimov/gogu
- A comprehensive, reusable and efficient concurrent-safe generics utility functions and data structures library.
lrita/cmap
- a thread-safe concurrent map for go, support using `interface{}` as key and auto scale up shards.
- Go package implementing buffers for handling various datatypes easily.
- Levenshtein distance and similarity metrics with customizable edit costs and Winkler-like bonus for common prefix.
kak-tus/nan
- Zero allocation Nullable structures in one library with handy conversion functions, marshallers and unmarshallers.
- Generic slice, map, set, iterator, and goroutine utilities.
- Go implementation Count-Min-Log sketch: Approximately counting with approximate counters (Like Count-Min sketch but using less memory).
- Generic key-sorted map using a red-black tree under the hood.
- Highly concurrent drop-in replacement for `bufio.Writer`.
- An implementation of pipelines with fan-in and fan-out.
goradd/maps
- Go 1.18+ generic map interface for maps; safe maps; ordered maps; ordered, safe maps; etc.
- Fast, zero-allocation, lexicographical-order-preserving packing of native types to bytes.
- Go 1.18+ generics package inspired by Kotlin's Sequence and Map.
- Go module that processes work concurrently and returns output in a channel in the order of input.
gurukami/typ
- Null Types, Safe primitive type conversion and fetching value from complex structures.
- FIFO Pipeline which parallels execution on each stage while maintaining the order of messages and results.
- Simple set data structure implementation in Go using LinkedHashMap.
- Multi-String Pattern Matching Algorithm for information retrieval.
bobg/merkle
- Space-efficient computation of Merkle root hashes and inclusion proofs.
- Yet another Bloomfilter implementation in Go, compatible with Java's Guava library.
- Iterator implementation to provide map and reduce functionalities.
- Doubly-ended heap (min-max heap) with O(log n) access to both minimum and maximum elements.
- First pure Go implementation of Ribbon filters (practically smaller than Bloom and Xor) for space-efficient approximate set membership queries.
- A persistent, map-like object for the Go programming language. Supports multiple embedded key-value stores.
- 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.
- Tools for parse JSON-like logs for collecting unique fields and events.
- Simple, in memory, zero dependency and battle tested, thread-safe deferred queue.
bobg/combo
- Combinatorial operations including permutations, combinations, and combinations-with-replacement.
- Type-safe generic wrapper for `sync.Map` with full method parity and zero dependencies.
lyonnee/hmap
- HMap is a concurrent and secure, generic support Map implementation designed to provide an easy-to-use API.