{"repo":"artisansdk/ratelimiter","free":true,"listed":false,"github":"https://github.com/artisansdk/ratelimiter","clone":"git clone https://github.com/artisansdk/ratelimiter.git","description":"A leaky bucket rate limiter and corresponding middleware with route-level granularity compatible with Laravel.","language":"PHP","stars":150,"topics":["leaky-bucket","rate-limiter","middleware","laravel","php"],"license":"MIT","category":"auth-billing-email","readme_excerpt":"Rate Limiter A leaky bucket rate limiter and corresponding middleware with route-level granularity compatible with Laravel. Table of Contents - Table of Contents - Installation - Usage Guide - Overview of the Laravel Rate Limiter - Laravel's Implementation - Problem 1: Bursting Exploit - Problem 2: No Granularity - Problem 3: Not Extensible - Understanding the Leaky Bucket Algorithm - Leaky Bucket Implementation - Solution 1: Bursting Limit - Solution 2: Route-Level Granularity - Solution 3: Extensible Key Resolvers - Bonus: Overflow Penalties - Different Rates for Guests vs. Authenticated Users - Different Rates for Different Users - Handling the Rate Limit Exceptions - Setting a Custom Cache for the Rate Limiter - How Request Signature Resolvers Work - How Multiple Buckets Work - Using the Built In Resolvers - Creating Custom Resolvers - Setting a Custom Resolver as the Default - Using the Rate Limiter by Itself - Creating a Custom Rate Limiter - Using the Bucket by Itself - Using the Evented Bucket - Logging the Drips in the Bucket - Running the Tests - Licensing Installation The package installs into a PHP application like any other PHP package: Once installed, you will need to bind your choice of Bucket implementations for the rate Limiter class. Choose either the Leaky or the Leaky Evented bucket if you need additional event dispatching. Add the following lines to your App\\Providers\\AppServiceProvider : If you do plan on using the Evented leaky bucket then you'll also w","default_branch":null,"files":null,"tree":[],"storefront":"/r/artisansdk","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/artisansdk/ratelimiter/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}