About
Roadmap
Where Klyro is today and what comes next. Items are grouped by whether they are done, planned, or listed only for completeness.
Shipped
| Milestone | Detail |
|---|---|
| RESP2 and RESP3 | Binary-safe values, matching reply shapes, verified against redis-py, go-redis, and ioredis |
| Five classic types | 130 Redis-shaped commands across data structures, transactions, pub/sub, and connection features |
| Memory as a native type | Three modes, 15 MEM.* commands, filters, fusion, per-record TTL |
| Dump format v3 | Memory indexes persist and reload; v1 and v2 dumps still load |
| Configuration surface | Config file, command line, CONFIG GET/SET, and an INFO memorydb section |
| Transactions and pub/sub | MULTI/EXEC/WATCH, channel and pattern subscriptions, and the blocking pops |
| maxmemory and eviction | All eight Redis policies, approximate sampling, and an OOM refusal for writes that could grow the keyspace |
| Container image | Two-stage static musl build, ~15 MB, unprivileged, with a protocol-level healthcheck |
| TypeScript, Python, and Go clients | Typed helpers cover all 15 MEM.* commands |
Planned
| Item | Why |
|---|---|
| Rust memory wrapper | Bring the typed MEM.* surface to Rust applications |
| REST gateway | A thin separate binary speaking RESP to Klyro, for callers that want HTTP |
| Approximate vector index | Lifts the exact-scan ceiling so an index can hold far more than tens of thousands of records |
| Built-in embedding provider | So MEM.ADD can accept text alone, with the model still swappable |
| Authentication | AUTH and ACLs, the precondition for running anywhere untrusted |
| Append-only log | Durability beyond a periodic snapshot |
Under consideration
- Streams, bitmaps, HyperLogLog, and geospatial types.
- Keyspace notifications, so a client can be told a key changed without anyone publishing it.
- A skip-list sorted set, replacing today’s O(n) sorted array.
Listed for completeness, not planned
Replication and clustering appear in the gap analysis because a Redis-shaped server is expected to have them, not because a single-node project needs them next. They would change the architecture substantially, and the exact-scan ceiling and authentication both matter more first.
Versioning
Klyro is 0.1.1. Command shapes may still change between minor versions where the current shape turns out to be wrong. The dump format is versioned and older dumps keep loading, so an upgrade never asks you to re-import.
