Analysis updated 2026-08-08 · repo last pushed 2026-02-24
Build a high-throughput service that reads and writes keyed data faster than the standard map allows.
Track membership of items in a Set without storing duplicate values.
Store and look up key-value pairs with any Go data type including strings, numbers, and custom structs.
| tidwall/hashmap | netflix/titus-executor | olemeyer/rocketplaneio | |
|---|---|---|---|
| Stars | 228 | 230 | 225 |
| Language | Go | Go | Go |
| Last pushed | 2026-02-24 | 2023-01-10 | — |
| Maintenance | Maintained | Dormant | — |
| Setup difficulty | easy | hard | moderate |
| Complexity | 2/5 | 4/5 | 4/5 |
| Audience | developer | ops devops | ops devops |
Figures from each repo's GitHub metadata at analysis time.
Just run go get to add the package, no external infrastructure or configuration needed.
This project gives Go programmers a faster, smarter way to store and look up data by key. Think of it as a high-performance replacement for Go's built-in map, the thing you use when you want to say "give me the value associated with this key" and get it back quickly. It offers two main types: a Map for key-value pairs (like storing a phone number for each name) and a Set for just tracking whether things exist (like a VIP list). Under the hood, it uses a few well-known techniques to squeeze out extra speed. "Open addressing" and "Robin Hood hashing" are strategies for placing items in memory so that lookups require fewer steps. The xxh3 algorithm is a fast method for turning keys into numeric addresses. The package also automatically reclaims memory when items are deleted, so the data structure doesn't quietly hold onto space it no longer needs. It supports Go generics, meaning it works with any data type, strings, numbers, custom structs, without extra plumbing. The target audience is Go developers who need a bit more performance than the standard library map provides, or who want a standalone Set type. Someone building a high-throughput service that constantly reads and writes keyed data might choose this for the speed gains shown in the project's benchmarks. The main tradeoff is that this only handles unordered data, if you need keys to stay in sorted or insertion order, the author points to a separate btree package instead. The README doesn't go into much detail on when the performance difference matters in practice, so developers would need to benchmark against the standard map for their own use cases.
A fast Go key-value store and Set type that replaces the standard library map for high-throughput workloads using advanced hashing and memory-efficient design.
Mainly Go. The stack also includes Go, Go generics, xxh3.
Maintained — commit in last 6 months (last push 2026-02-24).
No license information is mentioned in the explanation.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.