PHPackages                             async-interop/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. async-interop/event-loop

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

async-interop/event-loop
========================

An event loop interface for interoperability.

v0.5.0(9y ago)1695.8k9[12 issues](https://github.com/async-interop/event-loop/issues)4MITPHPPHP &gt;=5.5.0CI failing

Since Jul 15Pushed 9y ago26 watchersCompare

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

READMEChangelog (5)Dependencies (3)Versions (12)Used By (4)

Event Loop Interopability
=========================

[](#event-loop-interopability)

The purpose of this specification is to provide a common interface for event loop implementations. This allows libraries and components from different vendors to operate in an event driven architecture, sharing a common event loop.

Current Status
--------------

[](#current-status)

This project is currently on hold and to be seen as failed for now. It might be reconsidered at a later point in time. The specification in its current state has been merged into [Amp](https://github.com/amphp/amp). Interoperability between [ReactPHP](https://github.com/reactphp/event-loop) and Amp will be solved via adapters instead of a common interface. [Icicle](https://github.com/icicleio/icicle) has been deprecated and parts of it been merged into Amp libraries.

Why Bother?
-----------

[](#why-bother)

Some programming languages, such as Javascript, have an event loop that is native to the execution environment. This allows package vendors to easily create asynchronous software that uses this native event loop. Although PHP is historically a synchronous programming environment, it is still possible to use asynchronous programming techniques. Using these techniques, package vendors have created event loop implementations that have seen success.

However, as these event loop implementations are from package vendors, it is not yet possible to create event driven software components that are independent of the underlying event loop implementation. By creating a common interface for an event loop, interoperability of this nature will be possible.

Goals
-----

[](#goals)

The functionality exposed by this interface should include the ability to:

- Watch input streams for available data
- Watch output streams for the ability to perform non-blocking write operations
- Run single and periodic timers
- Listen for signals
- Defer the execution of callables

Implementations
---------------

[](#implementations)

You can find [available implementations on Packagist](https://packagist.org/providers/async-interop/event-loop-implementation).

Compatible Packages
-------------------

[](#compatible-packages)

You can find [compatible packages on Packagist](https://packagist.org/packages/async-interop/event-loop/dependents).

Contributors
------------

[](#contributors)

- [Aaron Piotrowski](https://github.com/trowski)
- [Andrew Carter](https://github.com/AndrewCarterUK)
- [Bob Weinand](https://github.com/bwoebi)
- [Cees-Jan Kiewiet](https://github.com/WyriHaximus)
- [Christopher Pitt](https://github.com/assertchris)
- [Daniel Lowrey](https://github.com/rdlowrey)
- [Niklas Keller](https://github.com/kelunik)
- [Stephen M. Coakley](https://github.com/coderstephen)

###  Health Score

37

—

LowBetter than 83% of packages

Maintenance19

Infrequent updates — may be unmaintained

Popularity37

Limited adoption so far

Community32

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor2

2 contributors hold 50%+ of commits

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 ~43 days

Total

5

Last Release

3421d ago

### 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/1628287?v=4)[Aaron Piotrowski](/maintainers/Trowski)[@trowski](https://github.com/trowski)

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

![](https://www.gravatar.com/avatar/f6db63ad594446f67d79532b75c69439fd0df779cc90868b43c187c02a4221ef?d=identicon)[bwoebi](/maintainers/bwoebi)

![](https://www.gravatar.com/avatar/83a82932c24c29b0e68201a359462dcd87f37b20976f1c48e827fd903ffa2284?d=identicon)[sagebind](/maintainers/sagebind)

![](https://www.gravatar.com/avatar/6e7abce428a9dc9c76f4275ca8d8d11ad55138d72f3e3e2b01c6b2da5b479cc0?d=identicon)[AndrewCarterUK](/maintainers/AndrewCarterUK)

![](https://www.gravatar.com/avatar/5fb7ff51d9c4671708fbc37b93dc7c2b2d671d4bf2143ee2484d76a00a8e699a?d=identicon)[rdlowrey](/maintainers/rdlowrey)

---

Top Contributors

[![kelunik](https://avatars.githubusercontent.com/u/2743004?v=4)](https://github.com/kelunik "kelunik (69 commits)")[![bwoebi](https://avatars.githubusercontent.com/u/3154871?v=4)](https://github.com/bwoebi "bwoebi (45 commits)")[![AndrewCarterUK](https://avatars.githubusercontent.com/u/6486835?v=4)](https://github.com/AndrewCarterUK "AndrewCarterUK (36 commits)")[![trowski](https://avatars.githubusercontent.com/u/1628287?v=4)](https://github.com/trowski "trowski (22 commits)")[![WyriHaximus](https://avatars.githubusercontent.com/u/147145?v=4)](https://github.com/WyriHaximus "WyriHaximus (7 commits)")[![joshdifabio](https://avatars.githubusercontent.com/u/5609851?v=4)](https://github.com/joshdifabio "joshdifabio (3 commits)")[![joelwurtz](https://avatars.githubusercontent.com/u/90466?v=4)](https://github.com/joelwurtz "joelwurtz (1 commits)")

---

Tags

asynchronousevent-loopinteroperabilityphpeventasyncloopinterop

###  Code Quality

TestsPHPUnit

### Embed Badge

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

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

###  Alternatives

[amphp/amp

A non-blocking concurrency framework for PHP applications.

4.4k123.4M323](/packages/amphp-amp)[revolt/event-loop

Rock-solid event loop for concurrent PHP applications.

92343.6M138](/packages/revolt-event-loop)[amphp/parallel

Parallel processing component for Amp.

85046.2M74](/packages/amphp-parallel)[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)[react/async

Async utilities and fibers for ReactPHP

2228.8M171](/packages/react-async)

PHPackages © 2026

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