Hi HN,
I'm Emilie, I have a literature background (which explains the well-written documentation!) and I've been learning Rust and distributed systems by building minikv over the past few months.
It recently got featured in Programmez! magazine: https://www.programmez.com/actualites/minikv-un-key-value-st...
minikv is an open-source, distributed storage engine built for learning, experimentation, and self-hosted setups.
It combines a strongly-consistent key-value database (Raft), S3-compatible object storage, and basic multi-tenancy.
Features/highlights:
- Raft consensus with automatic failover and sharding
- S3-compatible HTTP API (plus REST/gRPC APIs)
- Pluggable storage backends: in-memory, RocksDB, Sled
- Multi-tenant: per-tenant namespaces, role-based access, quotas, and audit
- Metrics (Prometheus), TLS, JWT-based API keys
- Easy to deploy (single binary, works with Docker/Kubernetes)
Quick demo (single node):
```bash
git clone https://github.com/whispem/minikv.git
cd minikv
cargo run --release -- --config config.example.toml
curl localhost:8080/health/ready
# S3 upload + read
curl -X PUT localhost:8080/s3/mybucket/hello -d "hi HN"
curl localhost:8080/s3/mybucket/hello
Docs, cluster setup, and architecture details are in the repo.
I’d love to hear feedback, questions, ideas, or your stories running distributed infra in Rust!
Repo: https://github.com/whispem/minikv
Crate: https://crates.io/crates/minikv
Minio used to do that but changed many years ago. Production-grade systems don't do that, for good reason. The only tool I've found is Rclone but it's not really meant to be exposed as a service.
Anyone knows of an option?