Download the PHP package philiprehberger/laravel-rate-limiter without Composer
On this page you can find all versions of the php package philiprehberger/laravel-rate-limiter. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Table of contents
Download philiprehberger/laravel-rate-limiter
More information about philiprehberger/laravel-rate-limiter
Files in philiprehberger/laravel-rate-limiter
Download philiprehberger/laravel-rate-limiter
More information about philiprehberger/laravel-rate-limiter
Files in philiprehberger/laravel-rate-limiter
Vendor philiprehberger
Package laravel-rate-limiter
Short Description Advanced rate limiting with sliding window, token bucket, and per-entity controls for Laravel
License MIT
Homepage https://github.com/philiprehberger/laravel-rate-limiter
Package laravel-rate-limiter
Short Description Advanced rate limiting with sliding window, token bucket, and per-entity controls for Laravel
License MIT
Homepage https://github.com/philiprehberger/laravel-rate-limiter
Please rate this library. Is it a good library?
Informations about the package laravel-rate-limiter
Laravel Rate Limiter
Advanced rate limiting with sliding window, token bucket, and per-entity controls for Laravel.
Requirements
- PHP 8.2+
- Laravel 11 or 12
Installation
The service provider is auto-discovered. Optionally publish the config:
Usage
Quick Start
Handling Rate-Limited Responses
Entry Points
Configuring the Limit
Algorithms
| Algorithm | String | Best For |
|---|---|---|
| Fixed Window | 'fixed' |
Internal tooling, scenarios where boundary bursts are acceptable |
| Sliding Window | 'sliding' (default) |
Public APIs, auth endpoints, strict burst prevention |
| Token Bucket | 'token_bucket' |
Upload/download throttling, expensive compute endpoints |
Middleware
Apply to routes via the rate-limit alias:
Configuration
config/rate-limiter.php:
API
RateLimit Facade / Entry Points
| Method | Description |
|---|---|
RateLimit::for(string $key) |
Create a pending limit for an arbitrary key |
RateLimit::forUser(Authenticatable $user) |
Create a pending limit scoped to a user |
RateLimit::forIp(string $ip) |
Create a pending limit scoped to an IP address |
PendingRateLimit (Fluent Builder)
| Method | Description |
|---|---|
->allow(int $limit) |
Set the maximum attempts per window |
->perSecond() |
Set window to 1 second |
->perMinute() |
Set window to 60 seconds |
->perHour() |
Set window to 3,600 seconds |
->perDay() |
Set window to 86,400 seconds |
->per(int $seconds) |
Set a custom window in seconds |
->algorithm(string $algo) |
Set algorithm: 'fixed', 'sliding', or 'token_bucket' |
->cost(int $cost) |
Set token cost per attempt (default: 1) |
->on(string $action) |
Append an action suffix to the key |
->attempt() |
Consume tokens and return a RateLimitResult |
->check() |
Inspect state without consuming tokens |
RateLimitResult
| Property / Method | Type | Description |
|---|---|---|
->allowed() |
bool |
Whether the attempt was allowed |
->denied() |
bool |
Whether the attempt was denied |
->retryAfter() |
?int |
Seconds until next token is available; null if not rate-limited |
->remainingTokens() |
int |
Remaining tokens in the current window (clamped to 0) |
->remaining |
int |
Remaining tokens in current window |
->limit |
int |
Configured limit |
->retryAfter |
int\|null |
Seconds until allowed; null if allowed |
->resetAt |
int |
Unix timestamp of next window reset |
->headers() |
array |
Standard HTTP rate limit headers |
Middleware Parameters
| Position | Parameter | Default |
|---|---|---|
| 1 | maxAttempts |
60 |
| 2 | windowSeconds |
60 |
| 3 | algorithm |
config default |
Development
Support
If you find this project useful:
License
MIT
All versions of laravel-rate-limiter with dependencies
PHP Build Version
Package Version
Requires
php Version
^8.2
illuminate/support Version ^11.0|^12.0
illuminate/cache Version ^11.0|^12.0
illuminate/routing Version ^11.0|^12.0
illuminate/http Version ^11.0|^12.0
illuminate/support Version ^11.0|^12.0
illuminate/cache Version ^11.0|^12.0
illuminate/routing Version ^11.0|^12.0
illuminate/http Version ^11.0|^12.0
The package philiprehberger/laravel-rate-limiter contains the following files
Loading the files please wait ...