├── .github ├── copilot-instructions.md └── workflows │ └── package.yml ├── .gitignore ├── DotNet.RateLimit.sln ├── LICENSE ├── README.md ├── USAGE_EXISTING_REDIS.md ├── azure-pipelines.yml ├── demo └── DotNet.RateLimiter.Demo │ ├── Controllers │ ├── RateLimitOnActionController.cs │ └── RateLimitOnAllController.cs │ ├── DotNet.RateLimiter.Demo.csproj │ ├── Program.cs │ ├── Properties │ └── launchSettings.json │ ├── WeatherForecast.cs │ ├── appsettings.Development.json │ └── appsettings.json ├── rate-limit.webp ├── src └── DotNet.RateLimiter │ ├── ActionFilters │ ├── IgnoreRateLimitAttribute.cs │ ├── RateLimitAttribute.cs │ └── RateLimitFilterFactory.cs │ ├── DotNet.RateLimiter.csproj │ ├── EndPointFilters │ └── RateLimitEndPointFilter.cs │ ├── Extensions │ ├── EndPointExtensions.cs │ └── HttpRequestExtension.cs │ ├── Implementations │ ├── InMemoryRateLimitService.cs │ ├── RateLimitCoordinator.cs │ └── RedisRateLimitService.cs │ ├── Interfaces │ ├── IRateLimitCoordinator.cs │ └── IRateLimitService.cs │ ├── Models │ ├── InMemoryRateLimitEntry.cs │ ├── RateLimitOptions.cs │ ├── RateLimitParams.cs │ └── RateLimitResponse.cs │ ├── RateLimitScope.cs │ ├── ServiceCollectionExtension.cs │ └── Utilities │ └── RateLimitResponseBuilder.cs └── test └── DotNet.RateLimiter.Test ├── BaseRateLimitTest.cs ├── CustomResponseStructureTest.cs ├── DotNet.RateLimiter.Test.csproj ├── ExistingRedisConnectionTest.cs ├── ExistingRedisDatabaseTest.cs ├── InMemoryRateLimitTest.cs ├── RateLimitCoordinatorTest.cs ├── RedisRateLimitTest.cs ├── Startup.cs ├── TestDataProvider.cs ├── TestInitializer.cs ├── appsettings.json └── appsettings_redis.json /.github/copilot-instructions.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/.github/copilot-instructions.md -------------------------------------------------------------------------------- /.github/workflows/package.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/.github/workflows/package.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/.gitignore -------------------------------------------------------------------------------- /DotNet.RateLimit.sln: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/DotNet.RateLimit.sln -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/README.md -------------------------------------------------------------------------------- /USAGE_EXISTING_REDIS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/USAGE_EXISTING_REDIS.md -------------------------------------------------------------------------------- /azure-pipelines.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/azure-pipelines.yml -------------------------------------------------------------------------------- /demo/DotNet.RateLimiter.Demo/Controllers/RateLimitOnActionController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/demo/DotNet.RateLimiter.Demo/Controllers/RateLimitOnActionController.cs -------------------------------------------------------------------------------- /demo/DotNet.RateLimiter.Demo/Controllers/RateLimitOnAllController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/demo/DotNet.RateLimiter.Demo/Controllers/RateLimitOnAllController.cs -------------------------------------------------------------------------------- /demo/DotNet.RateLimiter.Demo/DotNet.RateLimiter.Demo.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/demo/DotNet.RateLimiter.Demo/DotNet.RateLimiter.Demo.csproj -------------------------------------------------------------------------------- /demo/DotNet.RateLimiter.Demo/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/demo/DotNet.RateLimiter.Demo/Program.cs -------------------------------------------------------------------------------- /demo/DotNet.RateLimiter.Demo/Properties/launchSettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/demo/DotNet.RateLimiter.Demo/Properties/launchSettings.json -------------------------------------------------------------------------------- /demo/DotNet.RateLimiter.Demo/WeatherForecast.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/demo/DotNet.RateLimiter.Demo/WeatherForecast.cs -------------------------------------------------------------------------------- /demo/DotNet.RateLimiter.Demo/appsettings.Development.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/demo/DotNet.RateLimiter.Demo/appsettings.Development.json -------------------------------------------------------------------------------- /demo/DotNet.RateLimiter.Demo/appsettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/demo/DotNet.RateLimiter.Demo/appsettings.json -------------------------------------------------------------------------------- /rate-limit.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/rate-limit.webp -------------------------------------------------------------------------------- /src/DotNet.RateLimiter/ActionFilters/IgnoreRateLimitAttribute.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/src/DotNet.RateLimiter/ActionFilters/IgnoreRateLimitAttribute.cs -------------------------------------------------------------------------------- /src/DotNet.RateLimiter/ActionFilters/RateLimitAttribute.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/src/DotNet.RateLimiter/ActionFilters/RateLimitAttribute.cs -------------------------------------------------------------------------------- /src/DotNet.RateLimiter/ActionFilters/RateLimitFilterFactory.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/src/DotNet.RateLimiter/ActionFilters/RateLimitFilterFactory.cs -------------------------------------------------------------------------------- /src/DotNet.RateLimiter/DotNet.RateLimiter.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/src/DotNet.RateLimiter/DotNet.RateLimiter.csproj -------------------------------------------------------------------------------- /src/DotNet.RateLimiter/EndPointFilters/RateLimitEndPointFilter.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/src/DotNet.RateLimiter/EndPointFilters/RateLimitEndPointFilter.cs -------------------------------------------------------------------------------- /src/DotNet.RateLimiter/Extensions/EndPointExtensions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/src/DotNet.RateLimiter/Extensions/EndPointExtensions.cs -------------------------------------------------------------------------------- /src/DotNet.RateLimiter/Extensions/HttpRequestExtension.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/src/DotNet.RateLimiter/Extensions/HttpRequestExtension.cs -------------------------------------------------------------------------------- /src/DotNet.RateLimiter/Implementations/InMemoryRateLimitService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/src/DotNet.RateLimiter/Implementations/InMemoryRateLimitService.cs -------------------------------------------------------------------------------- /src/DotNet.RateLimiter/Implementations/RateLimitCoordinator.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/src/DotNet.RateLimiter/Implementations/RateLimitCoordinator.cs -------------------------------------------------------------------------------- /src/DotNet.RateLimiter/Implementations/RedisRateLimitService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/src/DotNet.RateLimiter/Implementations/RedisRateLimitService.cs -------------------------------------------------------------------------------- /src/DotNet.RateLimiter/Interfaces/IRateLimitCoordinator.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/src/DotNet.RateLimiter/Interfaces/IRateLimitCoordinator.cs -------------------------------------------------------------------------------- /src/DotNet.RateLimiter/Interfaces/IRateLimitService.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/src/DotNet.RateLimiter/Interfaces/IRateLimitService.cs -------------------------------------------------------------------------------- /src/DotNet.RateLimiter/Models/InMemoryRateLimitEntry.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/src/DotNet.RateLimiter/Models/InMemoryRateLimitEntry.cs -------------------------------------------------------------------------------- /src/DotNet.RateLimiter/Models/RateLimitOptions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/src/DotNet.RateLimiter/Models/RateLimitOptions.cs -------------------------------------------------------------------------------- /src/DotNet.RateLimiter/Models/RateLimitParams.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/src/DotNet.RateLimiter/Models/RateLimitParams.cs -------------------------------------------------------------------------------- /src/DotNet.RateLimiter/Models/RateLimitResponse.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/src/DotNet.RateLimiter/Models/RateLimitResponse.cs -------------------------------------------------------------------------------- /src/DotNet.RateLimiter/RateLimitScope.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/src/DotNet.RateLimiter/RateLimitScope.cs -------------------------------------------------------------------------------- /src/DotNet.RateLimiter/ServiceCollectionExtension.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/src/DotNet.RateLimiter/ServiceCollectionExtension.cs -------------------------------------------------------------------------------- /src/DotNet.RateLimiter/Utilities/RateLimitResponseBuilder.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/src/DotNet.RateLimiter/Utilities/RateLimitResponseBuilder.cs -------------------------------------------------------------------------------- /test/DotNet.RateLimiter.Test/BaseRateLimitTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/test/DotNet.RateLimiter.Test/BaseRateLimitTest.cs -------------------------------------------------------------------------------- /test/DotNet.RateLimiter.Test/CustomResponseStructureTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/test/DotNet.RateLimiter.Test/CustomResponseStructureTest.cs -------------------------------------------------------------------------------- /test/DotNet.RateLimiter.Test/DotNet.RateLimiter.Test.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/test/DotNet.RateLimiter.Test/DotNet.RateLimiter.Test.csproj -------------------------------------------------------------------------------- /test/DotNet.RateLimiter.Test/ExistingRedisConnectionTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/test/DotNet.RateLimiter.Test/ExistingRedisConnectionTest.cs -------------------------------------------------------------------------------- /test/DotNet.RateLimiter.Test/ExistingRedisDatabaseTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/test/DotNet.RateLimiter.Test/ExistingRedisDatabaseTest.cs -------------------------------------------------------------------------------- /test/DotNet.RateLimiter.Test/InMemoryRateLimitTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/test/DotNet.RateLimiter.Test/InMemoryRateLimitTest.cs -------------------------------------------------------------------------------- /test/DotNet.RateLimiter.Test/RateLimitCoordinatorTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/test/DotNet.RateLimiter.Test/RateLimitCoordinatorTest.cs -------------------------------------------------------------------------------- /test/DotNet.RateLimiter.Test/RedisRateLimitTest.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/test/DotNet.RateLimiter.Test/RedisRateLimitTest.cs -------------------------------------------------------------------------------- /test/DotNet.RateLimiter.Test/Startup.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/test/DotNet.RateLimiter.Test/Startup.cs -------------------------------------------------------------------------------- /test/DotNet.RateLimiter.Test/TestDataProvider.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/test/DotNet.RateLimiter.Test/TestDataProvider.cs -------------------------------------------------------------------------------- /test/DotNet.RateLimiter.Test/TestInitializer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/test/DotNet.RateLimiter.Test/TestInitializer.cs -------------------------------------------------------------------------------- /test/DotNet.RateLimiter.Test/appsettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/test/DotNet.RateLimiter.Test/appsettings.json -------------------------------------------------------------------------------- /test/DotNet.RateLimiter.Test/appsettings_redis.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sa-es-ir/DotNet.RateLimit/HEAD/test/DotNet.RateLimiter.Test/appsettings_redis.json --------------------------------------------------------------------------------