Maps - Awesome Go
See also Database for more complex key-value stores, and Trees for additional ordered map implementations.
Sponsorships
Quit struggling with scattered API keys and access controls.
Work from anywhere in the world with top tech companies like Riot Games, Coinbase, and Google.
- 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.
- goradd/maps - Go 1.18+ generic map interface for maps; safe maps; ordered maps; ordered, safe maps; etc.
- concurrent-writer - Highly concurrent drop-in replacement for bufio.Writer.
- conjungo - A small, powerful and flexible merge library.
- count-min-log - Go implementation Count-Min-Log sketch: Approximately counting with approximate counters (Like Count-Min sketch but using less memory).
- 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-geoindex - In-memory geo index.
- go-rampart - Determine how intervals relate to each other.
- 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.
- gofal - fractional api for Go.
- gogu - A comprehensive, reusable and efficient concurrent-safe generics utility functions and data structures library.
- gota - Implementation of dataframes, series, and data wrangling methods for Go.
- hide - ID type with marshalling to/from hash to prevent sending IDs to clients.
- hilbert - Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves.
- hyperloglog - HyperLogLog implementation with Sparse, LogLog-Beta bias correction and TailCut space reduction.
- quadtree - Generic, zero-alloc, 100%-test covered quadtree.
- slices - Functions that operate on slices; like package strings but adapted to work with slices.
- slices - Pure, generic functions for slices.
- nan - Zero allocation Nullable structures in one library with handy conversion functions, marshallers and unmarshallers.
- null - Nullable Go types that can be marshalled/unmarshalled to/from JSON.
- typ - Null Types, Safe primitive type conversion and fetching value from complex structures.
- deque - A highly optimized double-ended queue.
- deque - Fast ring-buffer deque (double-ended queue).
- goconcurrentqueue - Concurrent FIFO queue.
- memlog - An easy to use, lightweight, thread-safe and append-only in-memory data structure inspired by Apache Kafka.
- dsu - Disjoint Set data structure implementation in Go.
- golang-set - Thread-Safe and Non-Thread-Safe high-performance sets for Go.
- goset - A useful Set collection implementation for Go.
- set - Simple set data structure implementation in Go using LinkedHashMap.
- 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.
- mspm - Multi-String Pattern Matching Algorithm for information retrieval.
- parsefields - Tools for parse JSON-like logs for collecting unique fields and events.
- ptrie - An implementation of prefix tree.
- trie - Trie implementation in Go.
- hashsplit - Split byte streams into chunks, and arrange chunks into trees, with boundaries determined by content, not position.
- merkle - Space-efficient computation of Merkle root hashes and inclusion proofs.
- skiplist - Very fast Go Skiplist implementation.
- skiplist - Skiplist implementation in Go.
- treap - Persistent, fast ordered map using tree heaps.
- treemap - Generic key-sorted map using a red-black tree under the hood.
- 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.
- pipeline - An implementation of pipelines with fan-in and fan-out.