I built a distributed key-value store in Rust (~2K LOC)
I built a distributed key-value store in Rust (~2K LOC)
Hi HN, I built nanokv, a small distributed object/kv store in Rust. This started as a personal learning project to understand distributed systems, concurrency, and Rust at scale, but it evolved into something that’s actually usable: Architecture: Coordinator (metadata, placement, 2PC) + volume servers (blob storage) Features: replication, consistency, health checks, repair, rebuild, rebalance, GC APIs: simple REST (GET/PUT/DELETE) Ops: verify/repair/rebuild tools, OpenTelemetry tracing, K6 benchmarks Performance: on my laptop, 64 MB objects sustain ~600–1000 MB/s per stream; aggregate throughput climbs into hundreds of MB/s with replication. It’s nowhere near the sophistication of MinIO or SeaweedFS, but the code is simple (a few thousand lines), and the focus is on clarity and hackability rather than features. I learned a lot about backpressure (multi-semaphores for control vs data), streaming I/O, and debugging bottlenecks with tracing. If you’re curious about building storage systems in Rust, the repo has a detailed README and benchmarks. I’d love feedback: Does the design make sense? What would you like to see if this grew beyond a learning project? Thanks for reading!
Share cardActual performance
Launch Intel predictions
Analyze your own launch →Incorrect prediction on native model
Similar products
A simple distributed key-value store built on Raft
A simple distributed key-value store built on Raft
A threaded, TCP, key value store in Haskell
IronDB – a resilient key-value store for the browser
Kvass, a personal key-value store
A key-value store built with homomorphic encryption
Subscribable Key Value store using NATS
Key Value store using HFS+ extended attributes
Olivia, a distributed, in-memory, Key-value store in Go
Kiwi – a minimalistic, extendable, in-memory key value store