kevy
A single-machine, Redis-compatible key–value server in pure Rust, with zero third-party dependencies — built to push single-box performance toward the hardware limit. (For distribution, use Redis/Valkey; that is not kevy's scenario.)
- Thread-per-core, shared-nothing runtime (busy-poll, lock-free hot path).
- All five Redis data types — String, Hash, List, Set, Sorted Set — backed by modern structures (Swiss tables, a ring-buffer deque, a B-tree), not Redis's legacy encodings.
- RESP2 wire protocol; pub/sub;
MULTI/EXECtransactions; cross-shard multi-key commands (MSET/MGET/SINTER/…). - Durable: RDB-style snapshots + an append-only log (AOF).
- The only C touched is the unavoidable OS-boundary libc, hand-bound in one
crate (
kevy-sys); everything else is Rust.
Flags: --bind --port --threads --dir --no-aof · env: KEVY_BIND KEVY_PORT KEVY_THREADS KEVY_DIR KEVY_AOF.
For same-host clients, point KEVY_UNIX_SOCKET at a filesystem path
and the server dual-binds TCP + Unix-domain socket (RESP semantics
identical; ~60–75 % faster than TCP loopback at every workload —
see docs/uds.md):
KEVY_UNIX_SOCKET=/tmp/kevy.sock
Built from a small stack of reusable crates: kevy-sys, kevy-resp,
kevy-store, kevy-net, kevy-rt, kevy-persist.
License
Licensed under either of MIT or Apache-2.0 at your option.