burner-redis#
Zig 0.16 port of prefectlabs/burner-redis, an embedded, in-process Redis-compatible database.
The upstream project is a Rust crate with Python bindings. This port keeps the Redis engine and removes the Python/PyO3/Tokio layer so Zig consumers can call the store directly.
why this exists#
docket needs Redis semantics for streams, consumer groups, sorted sets, and Lua scripts, but not every deployment should have to run Redis. This project is the memory backend: it lets callers run the same Redis-shaped workflows in process, while keeping a real Redis backend available for distributed deployments.
That makes the dual-backend story practical: tests and small installs can use the embedded engine; larger installs can point at Redis without changing the scripts or command semantics they rely on.
what is here#
Store: in-process keyspace with Redis-compatible strings, hashes, sets, sorted sets, streams, lists, pub/sub, and persistence.LuaEngine: Redis-styleEVALsupport through Lua 5.1 via ziglua.persistence: atomic save/load using this port's compactBRDBsnapshot format.
See docs/architecture.md for command coverage and implementation notes.
Top-level Zig files are facades. Implementation lives under src/internal/,
with src/store.zig curating the public Store surface and
src/internal/store/core.zig holding the engine implementation.
performance#
The sorted-set hot paths are intentionally measured against the Rust upstream. See docs/benchmarks.md for the current comparison and the benchmark shape.
credit#
All credit for the design, command set, semantics, and original data-structure choices goes to prefectlabs/burner-redis. This repository is a Zig port adapted for direct Zig consumers.
license#
MIT; see LICENSE.