Skip to main content

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 RespireOptions connections
  • 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:// or RespireOptions.UseTls
  • Bounded RESP3 server-assisted client-side caching for eligible Redis reads
  • Dependency injection, distributed caching, HybridCache, and OpenTelemetry

Not implemented yet

CapabilityCurrent behavior
Redis Cluster gapsCluster routing is supported; WATCH transactions and sharded pub/sub remain unavailable in cluster mode
Automatic Sentinel failoverSentinel primary discovery is supported by ConnectAsync; lazy discovery and automatic re-discovery during failover are not supported
RESP3-first internalsProtocol 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.