Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: I built a distributed key-value store in Rust (~2K LOC) (github.com/pabannier)
1 point by el_pa_b 4 months ago | hide | past | favorite
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!



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: