Lyo.RateLimit
3.0.0
dotnet add package Lyo.RateLimit --version 3.0.0
NuGet\Install-Package Lyo.RateLimit -Version 3.0.0
<PackageReference Include="Lyo.RateLimit" Version="3.0.0" />
<PackageVersion Include="Lyo.RateLimit" Version="3.0.0" />
<PackageReference Include="Lyo.RateLimit" />
paket add Lyo.RateLimit --version 3.0.0
#r "nuget: Lyo.RateLimit, 3.0.0"
#:package Lyo.RateLimit@3.0.0
#addin nuget:?package=Lyo.RateLimit&version=3.0.0
#tool nuget:?package=Lyo.RateLimit&version=3.0.0
Lyo.RateLimit
TryAcquireAsync takes one permit or returns a denial with Retry-After. The store does not wait. Use it only where a caller already has a quota. AddRedisRateLimit replaces this registration when more than one host must share that quota.
Features
- IRateLimitService. Non-blocking acquire by policy, partition, limit, window, and pattern.
- Fixed window. Clock-aligned count. A full limit can be spent again at the next boundary.
- Sliding window. Weighted previous window plus the current window, rounded up.
- Token bucket. Continuous refill from the last update, capped at the permit limit.
- Whitelist matching. RateLimitEndpointMatcher skips named endpoints and method/route templates before a store call.
- DI. AddLocalRateLimit, the options instance overload, and AddLocalRateLimitFromConfiguration. TryAdd leaves a Redis registration in place.
Examples
One process
services.AddLocalRateLimit();
var decision = await limiter.TryAcquireAsync(
new RateLimitRequest("uploads", userId, 10, TimeSpan.FromMinutes(1), RateLimitWindow.Sliding));
if (!decision.Allowed)
throw new RateLimitExceededException(decision.RetryAfter, 10, TimeSpan.FromMinutes(1));
Dependencies
Generated from ProjectReference / PackageReference (same model as docs/Lyo.ProjectGraph.html).
Lyo.Exceptions(direct, lyo)Microsoft.Bcl.TimeProvider8.0.1(direct, microsoft, netstandard2.0)Microsoft.Extensions.Configuration.Binder10.0.5(direct, microsoft)Microsoft.Extensions.DependencyInjection.Abstractions10.0.5(direct, microsoft)
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Lyo.Exceptions (>= 3.0.0)
- Microsoft.Bcl.TimeProvider (>= 8.0.1)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.5)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.5)
-
net10.0
- Lyo.Exceptions (>= 3.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.5)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.5)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Lyo.RateLimit:
| Package | Downloads |
|---|---|
|
Lyo.Api
Core API library for building RESTful APIs with Entity Framework Core, caching, and mapping support. |
|
|
Lyo.Http.Client
Generic HTTP client for Lyo: JSON verbs, plans, extract, rate limiting, cookies, and IHttpClientFactory registration. No Lyo API problem-details. |
|
|
Lyo.RateLimit.Redis
Redis quota store. Same fixed, sliding, and token-bucket rules as Lyo.RateLimit, shared by every host on the connection. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 3.0.0 | 1,437 | 10/23/2026 |