A large feature release over v0.4.2: a binary wire, a shared-memory
transport, a Python client, the Redis string type with TTL, six embedded
scripting engines, and a family of native conditional-write commands.
Wire and transport
- SBE binary wire protocol on the GOBLINS! magic: the entire command
surface encoded in Simple Binary Encoding, replacing the earlier
Cap'n Proto experiment. Native doubles and int64s, jump-table dispatch
on the template id, ~1.7-2x faster than RESP over the same path.
- Shared-memory ring transport (io_uring-style SQ/CQ over mmap): no kernel
on the request path, ~220 ns synchronous round trips. Crash recovery via
an epoch reconnect handshake, so a messily-killed client can rejoin
without a server restart.
- goblin_core: a redis-py-compatible Python client over the ring + SBE.
Data types
- The Redis string type on a unified single-namespace keyspace.
- Key expiration (TTL) on a compact 48-bit expiry set; EXPIRE NX/XX/GT/LT
and SET XX/GET; already-expired keys are dropped on snapshot load.
- A compact listpack for small hashes.
Scripting (six independent embedded interpreters)
- PUC-Lua 5.1, Luau, Wren, Jim Tcl, MicroPython, and QuickJS, each with
EVAL/EVALSHA/SCRIPT and a precompiled script cache so EVALSHA skips
compilation.
Native conditional-write commands
- GOBLIN.CAD, GOBLIN.CAS, GOBLIN.CAEXPIRE, GOBLIN.INCREX, GOBLIN.ZWINDOW,
GOBLIN.INCRBOUND, GOBLIN.DECRPOS, GOBLIN.HCAD, GOBLIN.HSETGT,
GOBLIN.CLAIM, GOBLIN.TD_LEADERBOARD_RESCORE, plus ZREMRANGEBYSCORE.
Also
- Honest INFO memory: real used_memory and internal fragmentation.
- Benchmarks: compare-and-delete across every engine, native-vs-Lua
idioms, a six-language comparison, and the Lichess leaderboard replay
(14.3 billion ZADDs into one sorted set).