PHPackages                             revolt/event-loop - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Queues &amp; Workers](/categories/queues)
4. /
5. revolt/event-loop

ActiveLibrary[Queues &amp; Workers](/categories/queues)

revolt/event-loop
=================

Rock-solid event loop for concurrent PHP applications.

v1.0.8(8mo ago)91943.6M—3.2%38[10 issues](https://github.com/revoltphp/event-loop/issues)[5 PRs](https://github.com/revoltphp/event-loop/pulls)20MITPHPPHP &gt;=8.1CI passing

Since Nov 10Pushed 5mo ago26 watchersCompare

[ Source](https://github.com/revoltphp/event-loop)[ Packagist](https://packagist.org/packages/revolt/event-loop)[ RSS](/packages/revolt-event-loop/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (3)Versions (20)Used By (20)

Revolt [![](https://camo.githubusercontent.com/942e017bf0672002dd32a857c95d66f28c5900ab541838c6c664442516309c8a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e7376673f7374796c653d666c61742d737175617265)](blob/main/LICENSE)
===========================================================================================================================================================================================================================================================================

[](#revolt-)

Revolt is a rock-solid event loop for concurrent PHP applications. The usual PHP application spends most of its time waiting for I/O. While PHP is single threaded, [cooperative multitasking](https://en.wikipedia.org/wiki/Cooperative_multitasking) can be used to allow for concurrency by using the waiting time to do different things.

PHP's traditional synchronous execution flow is easy to understand. Doing one thing at a time. If you query a database, you send the query and wait for a response from the database server. Once you have the response, you can start doing the next thing.

Amp, ReactPHP, and other libraries have offered cooperative multitasking in PHP for a long time. However, their event-driven nature was incompatible to many existing interfaces and required a different thinking model. PHP 8.1 ships with fibers built-in, which offers cooperative multi-threading. Calls can be synchronous without promises or callbacks, while still allowing for non-blocking I/O.

Every application making use of cooperative multitasking needs a single scheduler (also called event loop), which this package provides. Revolt is the result of combining years of experience of Amp's and ReactPHP's event loop implementations. However, it is not a full-blown framework for writing concurrent PHP applications, but only provides what's necessary as a common base. Different (strongly) opinionated libraries can be built on top of it and both Amp and ReactPHP will continue to co-exist.

Installation
------------

[](#installation)

It may surprise people to learn that the PHP standard library already has everything we need to write event-driven and non-blocking applications. This package can be installed as a [Composer](https://getcomposer.org/) dependency on PHP 8.1 and later.

```
composer require revolt/event-loop
```

Applications with many concurrent file descriptors require one of the [extensions](https://revolt.run/extensions).

→ [View documentation](https://revolt.run/)
→ [View examples](./examples)

Versioning
----------

[](#versioning)

`revolt/event-loop` follows the [semver](https://semver.org/) semantic versioning specification.

License
-------

[](#license)

The MIT License (MIT). Please see [`LICENSE`](./LICENSE) file for more information.

###  Health Score

66

—

FairBetter than 99% of packages

Maintenance65

Regular maintenance activity

Popularity73

Solid adoption and visibility

Community47

Growing community involvement

Maturity68

Established project with proven stability

 Bus Factor1

Top contributor holds 62.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~85 days

Recently: every ~169 days

Total

17

Last Release

264d ago

Major Versions

v0.2.5 → v1.0.02022-11-02

PHP version history (2 changes)v0.1.0PHP &gt;=8.0.7

v0.2.5PHP &gt;=8.1

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/147145?v=4)[Cees-Jan Kiewiet](/maintainers/WyriHaximus)[@WyriHaximus](https://github.com/WyriHaximus)

![](https://avatars.githubusercontent.com/u/776829?v=4)[Christian Lück](/maintainers/clue)[@clue](https://github.com/clue)

![](https://avatars.githubusercontent.com/u/1628287?v=4)[Aaron Piotrowski](/maintainers/Trowski)[@trowski](https://github.com/trowski)

![](https://www.gravatar.com/avatar/12852217f3369e8144bc9ce6ac2a2341c28c5512c5b3df5749bfbbd45b6877ff?d=identicon)[kelunik](/maintainers/kelunik)

---

Top Contributors

[![kelunik](https://avatars.githubusercontent.com/u/2743004?v=4)](https://github.com/kelunik "kelunik (66 commits)")[![trowski](https://avatars.githubusercontent.com/u/1628287?v=4)](https://github.com/trowski "trowski (29 commits)")[![Nevay](https://avatars.githubusercontent.com/u/22509671?v=4)](https://github.com/Nevay "Nevay (2 commits)")[![danog](https://avatars.githubusercontent.com/u/7339644?v=4)](https://github.com/danog "danog (2 commits)")[![tnsoftbear](https://avatars.githubusercontent.com/u/2427839?v=4)](https://github.com/tnsoftbear "tnsoftbear (1 commits)")[![xabbuh](https://avatars.githubusercontent.com/u/1957048?v=4)](https://github.com/xabbuh "xabbuh (1 commits)")[![azjezz](https://avatars.githubusercontent.com/u/29315886?v=4)](https://github.com/azjezz "azjezz (1 commits)")[![xjaja](https://avatars.githubusercontent.com/u/5057757?v=4)](https://github.com/xjaja "xjaja (1 commits)")[![bwoebi](https://avatars.githubusercontent.com/u/3154871?v=4)](https://github.com/bwoebi "bwoebi (1 commits)")[![nhedger](https://avatars.githubusercontent.com/u/649677?v=4)](https://github.com/nhedger "nhedger (1 commits)")[![simPod](https://avatars.githubusercontent.com/u/327717?v=4)](https://github.com/simPod "simPod (1 commits)")

---

Tags

eventevent-loopasyncasynchronousschedulerconcurrencynon-blocking

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/revolt-event-loop/health.svg)

```
[![Health](https://phpackages.com/badges/revolt-event-loop/health.svg)](https://phpackages.com/packages/revolt-event-loop)
```

###  Alternatives

[amphp/amp

A non-blocking concurrency framework for PHP applications.

4.4k123.4M323](/packages/amphp-amp)[icicleio/icicle

Icicle is a PHP library for writing asynchronous code using synchronous coding techniques.

1.1k150.9k14](/packages/icicleio-icicle)[recoil/recoil

Asynchronous coroutines for PHP 7.

78961.5k7](/packages/recoil-recoil)[clue/reactphp-flux

Flux, the lightweight stream processor to concurrently do many (but not too many) things at once, built on top of ReactPHP.

59118.6k1](/packages/clue-reactphp-flux)[recoil/react

Integrate Recoil with ReactPHP.

32274.4k12](/packages/recoil-react)[orisai/scheduler

Cron job scheduler - with locks, parallelism and more

4037.1k4](/packages/orisai-scheduler)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
