selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
minikv logo

Self-host minikv

v2.0.1

Rust-based distributed key-value store with Raft consensus

BetaOpen SourceMIT
Updated4 weeks ago
LanguageRust
Setup difficultyAdvanced
Stars
405
Ports
5000 (Coordinator HTTP API), 5001 (Coordinator gRPC internal), 6000 (Volume server HTTP API), 6001 (Volume server gRPC internal)

What is minikv?

minikv is a distributed key-value and object store built in Rust for strong consistency and durability. It uses a Raft consensus group of coordinator nodes to replicate metadata, with volume servers storing the actual data blobs. Writes go through a two-phase commit between the leader coordinator and volume servers, with BLAKE3 checksum verification. Reads are linearizable on any coordinator via ReadIndex. The system provides S3-compatible HTTP REST endpoints, WebSocket/SSE watch streams, time-series and vector similarity APIs, and building blocks for API keys, JWT, RBAC, encryption, and quotas (enforcement planned for v2.1.0). It runs as a cluster of coordinators (ports 5000/5001) and volume servers (ports 6000/6001), deployable via Docker Compose or built from source with cargo. Several administrative functions such as verification, repair, compaction, scaling, backup, restore, and TTL are not yet implemented and return 501 errors.

Should you self-host minikv?

minikv scores 44/100 on selfhost.directory (how scoring works) and ranks #32 of 38 in Databases. It has 405 GitHub stars.

It shipped 10 stable releases in the past year. The latest, v2.0.1, came out on 29 September 2026. New versions land roughly every 2 weeks.

Setup is advanced: plan for several services and some ongoing maintenance. It is MIT-licensed and written mostly in Rust.

Its closest alternative on selfhost.directory is Redis (86/100, 77 142 stars). It scores higher overall, so compare the two before you pick. See minikv vs Redis side by side.

Features

  • Encryption at RestEnforcement on HTTP API planned for v2.1.0
  • Linearizable reads
  • Prometheus Metrics
  • Python SDKPreview release
  • Raft Consensus
  • S3-compatible API
  • Tenant quotas and rate limitingEnforcement on HTTP API planned for v2.1.0
  • Time-series enginePoints live in coordinator memory only, not replicated
  • Two-phase commit
  • Vector Similarity Search
  • Watch/SSE streams

minikv README

How to configure minikv

  • ADVERTISEVolume server gRPC advertise address

    Volume server gRPC advertise address

  • COORDINATORSComma-separated list of coordinator HTTP endpoints

    Comma-separated list of coordinator HTTP endpoints

  • DATA_PATHPath to volume blob storage

    Path to volume blob storage

  • DB_PATHPath to coordinator metadata database

    Path to coordinator metadata database

  • GRPC_BINDgRPC bind address for the coordinator

    gRPC bind address for the coordinator

  • HTTP_BINDHTTP bind address for the coordinator

    HTTP bind address for the coordinator

  • NODE_IDUnique identifier for the coordinator node

    Unique identifier for the coordinator node

  • PEERSComma-separated list of peer coordinator gRPC addresses

    Comma-separated list of peer coordinator gRPC addresses

  • REPLICASNumber of volume replicas for each key

    Number of volume replicas for each key

  • VOLUME_IDUnique identifier for the volume server

    Unique identifier for the volume server

  • WAL_PATHPath to volume write-ahead log

    Path to volume write-ahead log

minikv releases & version history

More in Distributed Systems

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…