- Category
- Developer Tools
- Rank
- No. 791Tools index
Previous survey · No. 785 ·
- Pricing
- Open Source
- Type
- TOOL
- Builder
- denoland
- GitHub
- 653 stars
- Latest release
- 0.14.0
- Date
About
Self-hosted backend for Deno KV, a SQLite-backed key-value store that lets you run Deno's distributed KV API on your own infrastructure.
What it does
Deno KV lets many Deno processes share one database over an authenticated network connection. The server accepts reads, atomic writes, expiration, and watch requests, then persists data through SQLite. It can also synchronize a read-only replica from an S3 backup and expose point-in-time recovery controls.
Why it's ranked here
The tool makes a strong case when an application already uses Deno KV and needs shared state under its own operational control. It preserves nearly the full remote API, supports ACID transactions, and ships practical deployment options. Its narrow ecosystem fit and stateful operating model keep it from being a general backend choice.
What's good
The server supports reads, writes, deletes, listing, atomic checks and numeric mutations, expiration, and watches over the remote protocol. SQLite provides the storage layer, while non-blocking I/O targets heavy connection concurrency. Docker, prebuilt binaries, source installation, S3 replica synchronization, and recovery-point tooling give operators several workable paths.
Tradeoffs
Remote connections cannot use queues because the network protocol excludes queue operations. The server speaks plain HTTP, so production deployments need a TLS-terminating proxy. Storage must remain persistent, and the documented VPS setup must not scale beyond one instance. Operators also own updates, backups, maintenance, access-token handling, and proxy configuration.
How to use it well
Choose it for Deno applications whose processes need shared KV state and whose team can operate a persistent service. Run it statefully, mount durable storage, protect traffic with TLS, and plan backups before production use. Keep the built-in local backend for development and testing. Choose hosted Deno KV when you do not want operations work, and do not depend on remote queues.
Technical notes+
Cargo.toml defines a Rust workspace with denokv, proto, remote, sqlite, and timemachine members. denokv/main.rs builds an Axum HTTP server with metadata, snapshot-read, atomic-write, and watch routes, validates bearer tokens with constant-time comparison, opens SQLite in read-write or read-only mode, and drives S3 synchronization plus point-in-time recovery. denokv/config.rs exposes serve and pitr CLI trees with environment-backed settings. remote/lib.rs implements KV Connect metadata refresh, protocol negotiation, Protobuf transport, retry behavior, and streamed responses. sqlite/lib.rs separates one write worker from optional read workers and coordinates watches and local queue processing. proto/convert.rs enforces key, value, range, mutation, queue, and watch limits before converting protocol messages. proto/build.rs generates checked-in Protobuf modules referenced by proto/protobuf.rs.
Observed
- License
- MIT
- Primary language
- Rust
- Packaging
- Docker image, prebuilt binary, and Cargo source installation
- Interfaces
- Command-line server and recovery tools, plus authenticated HTTP KV Connect API
- Deployment support
- Stateful VPS or Kubernetes deployment with persistent storage; documented single-instance VPS constraint
- Repository structure
- Cargo workspace with five members: server, protocol, remote client, SQLite backend, and time-machine tooling
Read from README.md, Cargo.toml, proto/lib.rs, remote/lib.rs, sqlite/lib.rs, proto/time.rs, denokv/main.rs, proto/build.rs, proto/codec.rs, remote/time.rs, sqlite/time.rs, proto/limits.rs, denokv/config.rs, proto/convert.rs, proto/protobuf.rs.
What it can do
Store key-value pairs in SQLite database
Key-value data pairs → Persistent data storage
Retrieve values by key from database
Database key → Stored value
Delete key-value pairs from storage
Database key → Confirmation of deletion
Host distributed KV API on custom infrastructure
Server configuration and Deno application → Running KV service endpoint
Process atomic transactions across multiple keys
Multiple key-value operations → Transaction success or failure result
List keys with optional prefix filtering
Optional key prefix pattern → Array of matching keys
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.
