Publication is crash-atomic.
Each shard applies a publication as one durable metadata command. Pin a snapshot when a workflow needs a stable multi-read view.
Metadata control plane for agent workspaces
NoKV publishes crash-consistent, versioned workspace state over object storage, with path-sharded metadata for small-file scale-out.
NoKV welcomes collaboration with other OSS to build the context data ecosystem
The navigation tax
Workers restart, fan out, and share infrastructure. Enterprise workspaces need tenant isolation, authenticated access, and stable, version-pinned reads while other agents write.
Today: pinned snapshot views, shard-local crash-atomic publication, and .
Next: enforced tenant identity, policy, and live-workspace freeze.
Animated demo: a small robot agent works away, emitting scattered run state — a config.yaml, params.json, two object-store keys, two database rows, and an outputs folder — which then converges into one NoKV namespace under /workspace/runs. The namespace then stays live: run 0143 publishes new artifacts as typed events, a snapshot pins a frozen view, and an agent answers find and grep calls with line-numbered evidence.
state scatters across folders, JSON files, object-store keys, and database rows
NoKV gives that state one address
/workspace/runs/0142
├── config.yaml
├── metadata.json
└── artifacts/
├── stdout.txt
├── stderr.txt
└── ckpt/best_model_1.0_1.pt indexed, queryable, watchable, snapshot-able
What NoKV is
To your tools and agents, NoKV looks like a filesystem: paths, folders, and files you can mount, list, and read. Underneath, file bodies live as immutable blocks in your S3-compatible object store. NoKV's built-in metadata engine keeps what exists, where, and in which version transactional, queryable, and snapshot-able. No separate database to run.
NoKV routes path ranges to independent Holt-backed owners, so small-file metadata work can scale in parallel without turning Holt into a distributed database.
Current main supports path sharding with one active writer per shard. This is horizontal sharding, not consensus replication. Multi-machine hardening and enterprise small-file throughput qualification against partner workloads remain in progress.
Write-path primitives
Each shard applies a publication as one durable metadata command. Pin a snapshot when a workflow needs a stable multi-read view.
Pin a frozen view of any subtree and keep reading it while jobs write. GC never deletes what a snapshot still needs.
Every create, rename, and publish lands as a typed, replayable event with a cursor.
Quickstart
# 0. Prereqs: Rust toolchain (1.88+); RustFS (or any S3-compatible store); macFUSE on macOS for mount
# 1. Build
cargo build --release -p nokv --bin nokv
# 2. Local S3 (RustFS) + create the default bucket
mkdir -p /tmp/rustfs-data
RUSTFS_ACCESS_KEY=rustfsadmin RUSTFS_SECRET_KEY=rustfsadmin \
rustfs server --address 127.0.0.1:9000 /tmp/rustfs-data &
AWS_ACCESS_KEY_ID=rustfsadmin AWS_SECRET_ACCESS_KEY=rustfsadmin \
aws --endpoint-url http://127.0.0.1:9000 s3api create-bucket --bucket nokv
# 3. Start the metadata server (every client command talks to 127.0.0.1:7777)
cargo run --release -p nokv --bin nokv -- serve &
# 4. Use it
cargo run --release -p nokv --bin nokv -- init
cargo run --release -p nokv --bin nokv -- mkdir /runs
cargo run --release -p nokv --bin nokv -- put-artifact /runs/1/ckpt.bin ./ckpt.bin
cargo run --release -p nokv --bin nokv -- cat /runs/1/ckpt.bin > restored.bin
cargo run --release -p nokv --bin nokv -- snapshot /runs # time travel starts here Status: single-node remains the default. Experimental multi-shard support is available on current main; multi-machine production hardening and the POSIX surface remain in progress.
An open benchmark ran the same ML-research tasks over identical data through two interfaces: raw SQL and a filesystem-shaped namespace. The namespace surface used 45% fewer tokens, cost 39% less, and answered more accurately.
Why nokv's metadata layer is built on a blob-framed Adaptive Radix Tree — and what that buys you on real NVMe.