Over time, I've noticed a lot of interesting information, code, and people centered around topics related to asynchronous programming using PHP. I thought it might be useful to try to catalog them all in one place. This repository is the result and fairly experimental in concept. Feel free to file an issue or submit a pull request if you think there's anything that should be added or changed.
- Asynchronous I/O - Wikipedia
- Async PHP by Christopher Pitt / assertchris
- Cooperative multitasking with generators by Christopher Pitt / assertchris
- Cooperative multitasking using coroutines (in PHP!) by Nikita Popov / nikic
- Coroutine - Wikipedia
- Futures and promises - Wikipedia
- Promises and Generators by Evert Pot / evert
- Reactive programming - Wikipedia
- The introduction to Reactive Programming you've been missing by André Staltz / staltz
- Thread (computing) - Wikipedia
- Thread carefully by Maxime Fabre
A non-blocking concurrency framework for PHP applications.
- GitHub: amphp
- Website: amphp.org
- amphp blog series by Niklas Keller / kelunik
A multithreaded application server for PHP, written in PHP.
- GitHub: appserver-io
- Website: http://appserver.io/
- GitHub: asyncphp
A PHP library for writing asynchronous code using synchronous coding techniques.
Deprecated in favor of Amp v2.
- Github: icicleio
- Website: https://icicle.io/
PHP framework for creating multi-processed, multi-threaded, fault-tolerant applications using event-driven, message-driven and agent-based architecture.
- GitHub: kraken-php
- Website: kraken-php.com
Asynchronous server-side framework for network applications implemented in PHP using libevent.
Event-driven, non-blocking I/O with PHP.
- GitHub: reactphp
- Website: reactphp.org
- React series by Cees-Jan Kiewiet / wyrihaximus
Cooperative multitasking for PHP via coroutines.
Asynchronous concurrent distributed networking framework for PHP
- GitHub: swoole
- Website: swoole.co.uk
- asm89/Rx.PHP - Libraries to compose asynchronous and event-based programs using observable collections and LINQ-style query operators
- clue/php-block-react - Lightweight library that eases integrating async components built for React in a traditional blocking environment
- spatie/async - Asynchronous and parallel PHP, this library provides a small and easy wrapper around PHP's PCNTL extension. It allows running of different processes in parallel, with an easy-to-use API
- amphp/cache - A promise-aware caching API built on amp
- amphp/redis - An async redis client built on amp
- asyncphp/icicle-cache - A simple cache library, built for Icicle, with anti-stampede and promises
- clue/php-redis-react - Async Redis client implementation built on React
- clue/php-redis-server - A redis server implementation in pure PHP
- nrk/predis-async - Asynchronous Redis client library built on React
- reactphp/cache - React async caching
- swoole/redis-async - Asynchronous Redis client for PHP with built-in connection pooling
- clue/php-bitbake-react - Programmatically control your bitbake build shell built on React
- clue/php-readline-react - Experimental reactive binding for ext-readline, built on React
- clue/php-shell-react - Run async commands within any interactive shell command built on React
- clue/php-stdio-react - Async event-driven and UTF-8 aware standard console input & output for React
- php-pm/php-pm - CLI process manager for modern Request-Response PHP Applications - with a builtin load-balancer built on React
- clue/php-tar-react - Async streaming parser for the TAR file format built on React
- clue/php-zlib-react - Streaming zlib compressor and decompressor built on React
- amphp/mysql - An async mysql client built on amp
- amphp/pgsql - A non-blocking PostgreSQL library built on amp
- recoilphp/database - Asynchronous PDO for Recoil
- Swoole Async Mysql Client - Async MySQL client for PHP
- amphp/dns - Async DNS resolution built on amp
- clue/php-mdns-react - Simple async multicast DNS (mDNS) resolver built on React
- reactphp/dns - Asynchronous DNS resolver
- asyncphp/remit - Distributed event emitter
- kraken-php/event - Library implementing EventEmitters and EventListeners for Kraken PHP
- kraken-php/loop - An abstraction layer for writing asynchronous code in PHP on single thread or process with usage of single or multiple computing flows
- recoilphp/event-emitter - A coroutine-based event emitter
- reactphp/event-loop - React's core reactor event-loop
- sabre/event - Lightweight library for event-based development
- amphp/file - An async filesystem library built on amp
- reactphp/filesystem - Evented filesystem access
- WyriHaximus/reactphp-filesystem-s3 - AWS S3 adapter for reactphp/filesystem
- clue/php-zenity-react - Build graphical desktop (GUI) applications in PHP
- amphp/artax - An async HTTP/1.1 client built on amp
- clue/php-buzz-react - Simple async HTTP client for concurrently processing requests built on React
- kraken-php/network - TCP, HTTP and WebSocket Server for Kraken
- reactphp/http - React HTTP server
- reactphp/http-client - Asynchronous HTTP client library
- WyriHaximus/react-guzzle-psr7 - React HTTP client adapter for Guzzle 6
- WyriHaximus/ReactGuzzleRing - React HTTP client wrapper for Guzzle 5
- WyriHaximus/ReactGuzzle - React HTTP client wrapper for Guzzle 4
- kraken-php/loop - Loop implementation for Kraken with a set of React adapters.
- clue/php-quassel-react - Streaming event-driven access to your Quassel IRC core built on React
- phergie/phergie-irc-bot-react - IRC bot built on React
- kraken-php/channel - IPC abstraction for various models implementing heartbeat mechanism, routing system and more
- kraken-php/ipc - Asynchronous IPC models for Kraken including Socket and ZMQ
- reactphp/stomp - STOMP bindings for React
- reactphp/zmq - ZeroMQ bindings for React
- recoilphp/amqp - An asynchronous AMQP client for React and Recoil
- amphp/amp - A non-blocking concurrency framework for PHP applications
- amphp/process - An async process dispatcher built on amp
- amphp/thread - An async multi-threaded task dispatcher built on amp
- asyncphp/assistant - A neat wrapper around multi-process abstractions and distributed event emitters
- asyncphp/doorman - Child process management
- krake-php/runtime - Container-based abstractions for Threads and Processes with delegated supervising
- reactphp/child-process - Library for executing child processes
- recoilphp/recoil - Cooperative multitasking for PHP via coroutines
- WyriHaximus/reactphp-child-process-messenger - Plain messages and RPC style STDIN/OUT/ERR wrapper around react/child-process
- WyriHaximus/reactphp-child-process-pool - Pool implementation for WyriHaximus/reactphp-child-process-messenger
- clue/php-ami-react - Simple async event-driven access to the Asterisk Manager Interface (AMI) built on React
- clue/php-icmp-react - Simple async low-level ICMP (ping) messaging library built on React
- clue/php-multicast-react - Simple multicast UDP messages built on React
- clue/php-ssdp-react - Async Simple Service Discovery Protocol (SSDP) built on React
- clue/php-solusvm-api-react - Simple async access to your VPS box through the SolusVM API built on React
- clue/php-socks-react - Async SOCKS TCP tunnel proxy client and server built on React
- clue/php-wake-on-lan-react - Turn on your PC with Wake-On-LAN requests via React
- reactphp/datagram - UDP client and server sockets for React
- reactphp/whois - Whois client based on React
- umpirsky/wisdom - Domain availability checker
- WyriHaximus/PhuninNode - munin-node port aiming to provide application monitoring utilizing munin
- guzzle/promises - Promises/A+ library for PHP with synchronous support
- kraken-php/promise - Implementation of Promise/A+ promises with cancellation support
- reactphp/promise - A lightweight implementation of CommonJS Promises/A for PHP
- reactphp/promise-timer - Timeout implementation for the React promises library
- amphp/socket - Non-blocking socket and TLS functionality built on amp
- clue/php-socket-react - Binding for raw sockets (ext-sockets) in React
- kraken-php/ipc - Asynchronous Socket listener and client
- kraken-php/stream - Asynchronous Streams
- reactphp/socket - Asynchronous socket server
- reactphp/socket-client - Async connector to open TCP/IP and SSL/TLS based connections
- reactphp/stream - Asynchronous OO stream wrapper
- WyriHaximus/reactphp-psr7-stream-converter - PSR-7 to React stream converter and vice versa
- amphp/aerys - A non-blocking HTTP application, WebSocket and file server
- amphp/aerys-session - Session management for Aerys server
- bixuehujin/blink - Microframework for building long-running high-performance services
- clue/php-sse-react - Streaming async HTML5 Server-Sent Events server built on React
- kraken-php/framework - PHP framework for creating multi-processed, multi-threaded, fault-tolerant applications using event-driven, message-driven and agent-based architecture
- ratchetphp/Pawl - Asynchronous WebSocket client
- ratchetphp/Ratchet - Asynchronous WebSocket server
- reactphp/espresso - Proof-of-concept microframework that integrates Silex with React
- swoole/swoole-src - Event-based concurrent framework for internet applications in PHP, written in C
- voryx/Thruway - client and router implementation of the Web Application Messaging Protocol built on React
- bergie/dnode-php - DNode RPC protocol implementation
- clue/php-packagist-api-react - Simple async access to packagist.org's API
- clue/php-viewvc-api-react - Simple async API-like access to your ViewVC web interface built on React
- clue/php-soap-react - A simple async SOAP webservice client built on React
- itnelo/reactphp-webdriver - Async Selenium WebDriver for React (Grid API client, W3C compliant)
- Aaron Piotrowski / trowski - GitHub
- Alexander / asm89 - GitHub
- Bob Weinand / bwoebi - GitHub, Twitter
- Cees-Jan Kiewiet / wyrihaximus - GitHub, Twitter
- Chris Boden / cboden - GitHub, Twitter
- Christian Lück / clue - GitHub, Twitter
- Christopher Pitt / assertchris - GitHub, Twitter, Twitch
- Daniel Lowrey / rdlowrey - GitHub, Twitter
- Kamil Jamroz / khelle - GitHub
- Niklas Keller / kelunik - GitHub, Twitter