A high-performance, memory-efficient Go implementation of Adaptive Radix Trees with zero-allocation searches and ordered iteration.
go-adaptive-radix-tree is a Go implementation of the Adaptive Radix Tree (ART), a data structure designed for efficient in-memory indexing of keys. It provides high-performance search, insertion, and deletion operations while maintaining keys in sorted order, enabling additional operations like range scans and prefix lookups that hash tables cannot support.
Go developers building systems requiring fast in-memory indexing with ordered data access patterns, such as databases, search engines, or applications needing prefix-based autocomplete functionality.
Developers choose this library for its combination of hash-table-like performance with the ordered iteration capabilities of trees, plus its specific optimization of zero memory allocations during searches, which outperforms other Go ART implementations.
Adaptive Radix Trees implemented in Go
Search operations incur zero memory allocations, as benchmarked against go-art, reducing garbage collection overhead and improving lookup performance.
Keys are stored lexicographically, enabling efficient range scans, prefix lookups, and ordered iteration—features hash tables lack.
Uses adaptive node sizes to minimize memory overhead, making it space-optimized compared to other tree implementations.
Accepts any byte array as keys, including those with null bytes, allowing for versatile data encoding without restrictions.
Insert operations involve memory allocations, as shown in benchmarks (e.g., 1.2M allocs for 235K words), which can impact write-heavy workloads.
The library does not provide thread-safe operations, requiring developers to implement external synchronization for concurrent access, adding complexity.
Specialized for in-memory indexing with sorted access; not suitable for persistent storage or as a general-purpose replacement for all map scenarios.
A modern text/numeric/geo-spatial/vector indexing library for go
Data structure and relevant algorithms for extremely fast prefix/fuzzy string searching.
📚 String comparison and edit distance algorithms library, featuring : Levenshtein, LCS, Hamming, Damerau levenshtein (OSA and Adjacent transpositions algorithms), Jaro-Winkler, Cosine, etc...
Go implementation to calculate Levenshtein Distance.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.