Status and roadmap
Respire is pre-release. Its core RESP2 client, typed command surface, pipelining, blocking command routing, pub/sub, streams, transactions, caching, dependency injection, and telemetry are implemented. Public APIs may still change.
Available now
- Redis-style URI and
RespireOptionsconnections - Multiplexed connection pool with automatic pipelining
- String, key, hash, list, set, sorted-set, stream, bitmap, HyperLogLog, geo, script, and server facets
- Generated descriptors for every audited Redis, Valkey, module, KeyDB, and Dragonfly command
- Blocking list and stream commands on dedicated pooled connections
- Batches, transactions, and optimistic concurrency with
WATCH - Pub/sub, pattern subscriptions, and Redis 7 sharded pub/sub
- Redis Sentinel primary discovery at connection time
- Typed JSON serialization and custom
IRespireSerializer - Raw and interpolated command execution
- Automatic reconnect and pub/sub resubscription
- TLS connections through
rediss://orRespireOptions.UseTls - Bounded RESP3 server-assisted client-side caching for eligible Redis reads
- Dependency injection, distributed caching,
HybridCache, and OpenTelemetry
Not implemented yet
| Capability | Current behavior |
|---|---|
| Redis Cluster gaps | Cluster routing is supported; WATCH transactions and sharded pub/sub remain unavailable in cluster mode |
| Automatic Sentinel failover | Sentinel primary discovery is supported by ConnectAsync; lazy discovery and automatic re-discovery during failover are not supported |
| RESP3-first internals | Protocol option exists; broader adoption remains planned |
If one of these is a hard requirement today, use a mature client such as StackExchange.Redis.
Design source
The full surface, tradeoffs, wire architecture, and future work live in the repository's API design specification. The longer Why Respire document explains the product bets and where the client fits.
Track changes and contribute through GitHub issues.