DownloadRate Limiter in PHP
A pure PHP implementation of a rate limiter. 
Blog post - https://blog.niteshapte.com/2024-12-01-rate-limiter-in-php.htm
Features
- 
Limit the number of requests within a specific time period.
 
- 
Timeout mechanism for requests exceeding the limit.
 
- 
Customizable parameters.
 
 
Installation
Clone the repository: git clone https://github.com/niteshapte/rate-limiter-php.git
 Usage
Configuration
The rate limiter can be configured in `rate_limiter_config.php` $rateLimiter = new RateLimiter(
    limitForPeriod: 2,         // Max 2 requests
    limitRefreshPeriod: 1.0,   // Reset limit every 1 second
    timeoutDuration: 0.1       // Timeout after 500 milliseconds
);
 
Example
Check the `example.php` file: <?php
require_once 'rate_limiter_config.php';
/ @var RateLimiter $rateLimiter */
$rateLimiter = require 'rate_limiter_config.php';
// Simulate requests
for ($i = 0; $i < 10; $i++) {
    if ($rateLimiter->allowRequest()) {
        echo "Request $i: Allowed\n";
    } else {
        echo "Request $i: Rate limit exceeded\n";
        if ($rateLimiter->waitForRequest()) {
            echo "Request $i: Allowed after waiting\n";
        } else {
            echo "Request $i: Denied after timeout\n";
        }
    }
    usleep(200000); // Simulate delay between requests (200ms)
}
?>
  |