Download the PHP package zwirek/reactphp-limiter without Composer

On this page you can find all versions of the php package zwirek/reactphp-limiter. 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 reactphp-limiter

zwirek/reactphp-limiter

Set of limiters designed to use with ReactPHP

Table of content

  1. Introduction
  2. Usage
    • RateLimiter
    • TimeWindowLimiter
    • MutationLimiter
  3. Limiter Interface

Introduction

This repository contains several limiter classes designed for use with ReactPHP. Each limiter must have a registered handler (callable) that will be called immediately for each request before the limit is reached. Any additional request over the limit will be queued. There are different limiters for different purposes:

Usage

RateLimiter

Limit concurrent handler execution to given limit

Handler will only be fired twice at the same time.

It is possible to limit the number of jobs waiting to be executed by setting an overflow limit

Calls above the limit are immediately rejected.

TimeWindowLimiter

This limiter is responsible for limiting handler execution under a given limit within a time window. For example it is possible to limit a job execution to 100 times every 1 minute.

For this example, the handler is called twice every half second. The next calls will start immediately when the next window starts, even if jobs from the previous window are in pending state.

It is possible to limit the number of jobs waiting to be executed by setting an overflow limit.

MutationLimiter

This limiter can limit concurrent job calls for specific resource. Resource can be anything like file, connection, row in database because limiter needs additional callback that returns resource id. Resource id must be string or int or float.

Second callback is responsible for providing resource id. It gets the same data as argument as handler callback. In this way it is possible to resolve resource id based on given data.

It is possible to limit the number of jobs waiting to be executed per resource by setting an overflow limit.

Limiter Interface

Every limiter class implement \Zwirek\Limiter\Limiter interface. Limiter interface have only one public method.

The handler can be called with zero or more arguments. It is important to call ::handle with at least the number of arguments as a registered handler callback.


All versions of reactphp-limiter with dependencies

PHP Build Version
Package Version
Requires php Version >=8.1
react/event-loop Version ^1.4
react/promise Version ^2.2 || ^3.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 zwirek/reactphp-limiter contains the following files

Loading the files please wait ....