ConduitSharp.RateLimit.RedisProtocol
2.0.0
dotnet add package ConduitSharp.RateLimit.RedisProtocol --version 2.0.0
NuGet\Install-Package ConduitSharp.RateLimit.RedisProtocol -Version 2.0.0
<PackageReference Include="ConduitSharp.RateLimit.RedisProtocol" Version="2.0.0" />
<PackageVersion Include="ConduitSharp.RateLimit.RedisProtocol" Version="2.0.0" />
<PackageReference Include="ConduitSharp.RateLimit.RedisProtocol" />
paket add ConduitSharp.RateLimit.RedisProtocol --version 2.0.0
#r "nuget: ConduitSharp.RateLimit.RedisProtocol, 2.0.0"
#:package ConduitSharp.RateLimit.RedisProtocol@2.0.0
#addin nuget:?package=ConduitSharp.RateLimit.RedisProtocol&version=2.0.0
#tool nuget:?package=ConduitSharp.RateLimit.RedisProtocol&version=2.0.0
ConduitSharp.RateLimit.RedisProtocol
A drop-in distributed rate-limit store for ConduitSharp over the Redis protocol (RESP). Works with Valkey, Redis 7, and any RESP-compatible server (KeyDB, Dragonfly, AWS ElastiCache/MemoryDB). All gateway instances share one fixed-window counter, so a client's quota holds across every replica instead of multiplying per instance.
It replaces the built-in in-process InMemoryRateLimitStore with no core changes: the gateway
discovers an IRateLimitStore implementation dropped into its plugins root (last-registration-wins).
- Shared across instances — one quota, however many replicas serve the route.
- Fails open — if the store is unreachable, requests pass rather than being rejected, and the gateway starts even when the backend is briefly down.
Install
Build the drop-in:
dotnet publish plugins/ConduitSharp.RateLimit.RedisProtocol/src/ConduitSharp.RateLimit.RedisProtocol \ -c Release -o out/redis-ratelimitDrop it into the gateway's plugins root (the top level, not a per-route subdirectory), or reference the
ConduitSharp.RateLimit.RedisProtocolpackage and register it in DI when embedding the gateway.Configure the connection (appsettings.json or environment variables):
{ "Gateway": { "RateLimiting": { "Redis": { "ConnectionString": "redis:6379" } } } }
Options (Gateway:RateLimiting:Redis)
| Setting | Default | Description |
|---|---|---|
ConnectionString |
(required) | RESP server, e.g. valkey:6379 |
KeyPrefix |
conduitsharp:ratelimit: |
Prefix for all counter keys |
Database |
-1 |
Redis logical database (-1 = server default) |
Routes keep their normal rate-limit plugin config (windowSeconds, maxRequests) — only the counter storage moves to the shared backend.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- ConduitSharp.Gateway.AspNetCore (>= 2.0.0)
- ConduitSharp.Traffic (>= 2.0.0)
- StackExchange.Redis (>= 2.8.58)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.0.0 | 231 | 8/14/2026 |
| 1.0.0 | 122 | 7/25/2026 |
| 1.0.0-rc.1 | 62 | 7/18/2026 |