KnowYourLimits.AspNetCore
2.1.1-alpha
See the version list below for details.
dotnet add package KnowYourLimits.AspNetCore --version 2.1.1-alpha
NuGet\Install-Package KnowYourLimits.AspNetCore -Version 2.1.1-alpha
<PackageReference Include="KnowYourLimits.AspNetCore" Version="2.1.1-alpha" />
paket add KnowYourLimits.AspNetCore --version 2.1.1-alpha
#r "nuget: KnowYourLimits.AspNetCore, 2.1.1-alpha"
// Install KnowYourLimits.AspNetCore as a Cake Addin #addin nuget:?package=KnowYourLimits.AspNetCore&version=2.1.1-alpha&prerelease // Install KnowYourLimits.AspNetCore as a Cake Tool #tool nuget:?package=KnowYourLimits.AspNetCore&version=2.1.1-alpha&prerelease
KnowYourLimits
A rate limiting library for .Net projects.
Currently provides a middleware:
- AspNet Core
Available rate limiting strategies:
- Leaky Bucket
When a client exceeds their request limit, a 429 Too Many Requests
status will be returned.
Setup
The middleware should be attached to the application as high in the order as possible, to intercept requests early.
For example, to configure the rate limiter to allow 4 requests per second, with a maximum of 100 requests, see below:
var rateLimitingConfiguration = new LeakyBucketConfiguration
{
MaxRequests = 100,
LeakRate = TimeSpan.FromSeconds(1),
LeakAmount = 4,
IdentityProvider = new CustomIdentityProvider() // If not set, defaults to using the remote address
};
app.UseRateLimiting(new LeakyBucketRateLimitStrategy(rateLimitingConfiguration));
By default client requests will be identified using the remote address of the request. To implement a custom identity provider, implement the IClientIdentityProvider
interface and pass it in to the configuration.
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. |
.NET Core | netcoreapp2.0 is compatible. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
-
.NETCoreApp 2.0
- KnowYourLimits (>= 2.0.1-alpha)
- Microsoft.AspNetCore (>= 2.0.1)
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 |
---|---|---|
5.1.0 | 3,077 | 5/5/2020 |
5.0.0 | 1,009 | 5/4/2020 |
4.1.0 | 1,249 | 1/24/2020 |
4.0.1 | 1,194 | 11/13/2019 |
3.0.0 | 1,061 | 11/11/2019 |
2.3.2 | 2,238 | 7/24/2018 |
2.3.1 | 1,362 | 7/24/2018 |
2.3.0 | 1,363 | 7/24/2018 |
2.2.0 | 1,714 | 4/27/2018 |
2.2.0-alpha | 1,473 | 4/27/2018 |
2.1.1-alpha | 1,400 | 4/27/2018 |
2.1.0-alpha | 1,326 | 4/27/2018 |
2.0.0 | 1,835 | 1/16/2018 |
1.0.2 | 1,648 | 1/16/2018 |
1.0.1 | 1,596 | 1/16/2018 |
1.0.0 | 1,633 | 1/15/2018 |