I’ve built a small key–value storage system (put/get/delete) that also supports subscribing to updates — hence the name nkv (notify key value). It’s designed for cases where multiple services need to share lightweight state.
A few details:
- Keyspaces: built-in support for isolating data into separate keyspaces.
- Storage modes: persistent, non-persistent, hybrid, or fully pluggable if you want to implement your own backend.
- Transport: currently uses a Unix socket (good for single-machine deployments and better security). It can be extended to TCP if needed.
- Size: very small footprint — ~2.4M on macOS (server) and ~963K for the standalone client.
- Language support: client libraries available in Rust and Go.
If you need a full-featured distributed KV store, you should look at etcd. nkv intentionally keeps a much simpler API and a smaller surface area.
uncle_decart•15m ago
A few details:
- Keyspaces: built-in support for isolating data into separate keyspaces.
- Storage modes: persistent, non-persistent, hybrid, or fully pluggable if you want to implement your own backend.
- Transport: currently uses a Unix socket (good for single-machine deployments and better security). It can be extended to TCP if needed.
- Size: very small footprint — ~2.4M on macOS (server) and ~963K for the standalone client.
- Language support: client libraries available in Rust and Go.
If you need a full-featured distributed KV store, you should look at etcd. nkv intentionally keeps a much simpler API and a smaller surface area.