Self-contained metadata
A path-native metadata engine (Holt) built in. No Redis, TiKV, or external database to operate — you run a filesystem, not a filesystem plus a database.
Holt-backed metadata, S3-compatible immutable object bodies, FUSE and SDK paths — a self-contained filesystem with no separate database to run.
How it works
NoKV owns namespace truth, metadata transactions, snapshots, watches, and object-reference GC. The object store owns byte durability. The metadata engine is built in — no separate Redis, MySQL, or TiKV cluster to run.
Mount it, call the Rust SDK, or drive it from nokv-fs. One namespace, three front doors.
Path-native inode & dentry metadata in a built-in ART engine — MetadataCommand transactions, snapshots, and typed watches.
File bytes are immutable blocks in RustFS, MinIO, Ceph RGW, or AWS S3 — elastic, cheap, zero-ops durability.
Benchmarks
Release build, full server + RPC + Holt path, local RustFS backend. Distributed numbers need separate runs.
A single directory of 65k entries holds the same throughput — the path-native ART doesn't degrade on big directories.
Comparison
Object-backed, metadata/data split, FUSE and SDK paths. The difference is the metadata layer and the semantics.
| JuiceFS | NoKV | |
|---|---|---|
| Metadata engine | rents a general DB (Redis / MySQL / TiKV) | built-in, path-native (Holt) |
| Checkpoint publish | general POSIX | first-class atomic primitive |
| Block model | slice + compaction | immutable + new-generation |
| AI-native primitives | bolted on | snapshots, typed watch, GC floor |
| POSIX completeness | full | partial (single-node) |
| Maturity | production, billions of files | young — single-node, no HA yet |
Quick start
# Build the CLI
cargo build --release -p nokvfs-cli --bin nokv-fs
# A local S3 endpoint (RustFS) — bucket `nokv`, dev creds rustfsadmin
rustfs server --address 127.0.0.1:9000 \
--access-key rustfsadmin --secret-key rustfsadmin ./rustfs-data &
# Initialize, publish an artifact, read it back
nokv-fs --object-backend rustfs init
nokv-fs --object-backend rustfs put-artifact /runs/1/ckpt.bin ./ckpt.bin
nokv-fs --object-backend rustfs cat /runs/1/ckpt.bin > restored.bin
# Mount with FUSE (macOS needs macFUSE)
nokv-fs --object-backend rustfs mount /tmp/nokv-mountApache-2.0. A usable single-node object-backed filesystem today — a distributed metadata layer with Holt as the shard-local state machine next.