Download the PHP package recranet/guzzle-rate-limiter-middleware without Composer

On this page you can find all versions of the php package recranet/guzzle-rate-limiter-middleware. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package guzzle-rate-limiter-middleware

Guzzle Rate Limiter Middleware

A thread-safe rate limiter middleware for Guzzle using Symfony RateLimiter with atomic locks.

Features

Why This Package?

Unlike simple in-memory rate limiters, this package uses Symfony's Lock component to provide atomic rate limit checks. This prevents race conditions when multiple workers or processes check limits simultaneously, making it safe for use in distributed systems, queue workers, and multi-threaded applications.

Installation

Usage

Basic Usage

Factory Methods

The middleware provides several factory methods for common rate limiting scenarios:

Token Bucket

For APIs that allow bursting, use the token bucket strategy:

Handlers

When the rate limit is exceeded, a handler determines what happens next.

SleepHandler (Default)

Blocks the process until the rate limit window resets, then retries automatically:

ThrowExceptionHandler

Throws a RateLimitException for the calling code to handle:

This is useful for message queue systems where you want to requeue the job with a delay rather than blocking the worker.

Custom Handler

Implement RateLimitExceededHandler to create your own handler:

Cache Backends

Any PSR-6 cache implementation works. Here are some common options:

Redis (Recommended for distributed systems)

Filesystem (Single server)

APCu (Single server, high performance)

Testing

Changelog

Please see CHANGELOG for more information on what has changed recently.

License

The MIT License (MIT). Please see License File for more information.


All versions of guzzle-rate-limiter-middleware with dependencies

PHP Build Version
Package Version
Requires php Version >=8.2
guzzlehttp/guzzle Version ^7.0
psr/cache Version ^3.0
symfony/rate-limiter Version ^6.4 || ^7.0
symfony/lock Version ^6.4 || ^7.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package recranet/guzzle-rate-limiter-middleware contains the following files

Loading the files please wait ...