Valdr
Valkey, in safe Rust. Alpha.
Valdr is intended to be a drop-in replacement for Valkey/Redis for single-node use cases, written in mostly-safe Rust. Aiming to be part of a future with safer critical infrastructure for the web. Valdr implements the single-node core command surface; the C module ABI, clustering, Sentinel, and production high availability are outside the current alpha claim.
Coverage
Counted assertions ██████████ 3,035 / 3,035
Single-node-core blocks ██████████ 2,525 / 2,526 · 99.96%
Full upstream Valkey suite ██████░░░░ 2,534 / 4,281 · 59%
Valkey's own tests, not ours. Single-node, in scope: 100% of counted assertions, 99.96% of core source blocks. The remaining core source block is filtered to a 0/0 run by tag policy. AOF is single-node correctness-gated; replication/HA is still alpha and not part of the single-node claim. The full-suite figure is lower because ~41% of upstream tests cover cluster, modules, Sentinel, and integration we do not claim yet. Verified against Valkey 9.1.0.
Scope
Strings, lists, hashes, sets, sorted sets ████████████ full
Streams + consumer groups ████████████ full
Pub/Sub (regular + sharded) ████████████ full
Transactions (MULTI/EXEC/WATCH) ████████████ full
Scripting (EVAL/EVALSHA/FCALL) ████████████ via mlua
ACL, AUTH, multi-DB ████████████ full
Expiration, maxmemory eviction ████████████ full
RDB persistence ████████████ bidirectional
TLS ████████████ rustls 1.2/1.3, mTLS
AOF persistence ███████████░ single-node gated
Replication ██████░░░░░░ alpha · HA/PSYNC unproven
Cluster mode ░░░░░░░░░░░░ not implemented
Sentinel HA ░░░░░░░░░░░░ not implemented
Loadable C module ABI ░░░░░░░░░░░░ not implemented
Performance
loading benchmark data…
Auto-generated from the latest benchmark run. Ratio = Valdr rps ÷ Valkey rps; >1.00× means Valdr is faster.
Full per-row data (auto-generated from the latest benchmark run)
About
Valdr aims to be a drop in replacement for Valkey in the long run. Big picture the thought is that if the memory safety issue becomes even large problem it will be important to have memory safe alternatives ready to go. It also is able to leverage some truly great modern primatives like rustls and later on tokio. your own words.
I'm aiming to develop a suite of similar tools in the same vein, like my project in [Lua for Rust](https://github.com/ianm199/lua-rs-port/tree/main). In addition to memory safety this can provide cross compilation for many projects.
Try it
docker pull ghcr.io/ianm199/valdr:alpha
docker run -d --name valdr -p 6379:6379 ghcr.io/ianm199/valdr:alpha
printf 'PING\r\n' | nc 127.0.0.1 6379
# +PONG
docker run --rm --network host valkey/valkey:8-alpine \
valkey-benchmark -h 127.0.0.1 -p 6379 -n 100000 -c 50 -P 100 -t get,set