GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Home
  • Changelog
  • EventLoop v1.6.0
  • Stream v1.4.0
  • Promise v3.3.0
  • Async v4.3.0
  • Socket v1.17.0
  • Datagram v1.10.0
  • HTTP v1.12.0
  • DNS v1.14.0
  • Cache v1.2.0
  • ChildProcess v0.6.7
  • PromiseTimer v1.11.0
  • PromiseStream v1.7.0

This view

  • Original page
  • New address

GeezerVison is showing reactphp.org — ReactPHP: Event-driven, non-blocking I/O with PHP - ReactPHP


ReactPHP is production ready and battle-tested with millions of installations from all kinds of projects around the world.

Its event-driven architecture makes it a perfect fit for efficient network servers and clients handling hundreds or thousands of concurrent connections, long-running applications and many other forms of cooperative multitasking with non-blocking I/O operations.

What makes ReactPHP special is its vivid ecosystem with hundreds of third-party libraries allowing you to integrate with many existing systems, such as common network services, database systems and other third-party APIs.

ReactPHP is non-blocking by default. Use workers for blocking I/O.

The event loop is based on the reactor pattern (hence the name) and strongly inspired by libraries such as EventMachine (Ruby), Twisted (Python) and Node.js (V8).

  • Production ready and battle-tested.
  • Rock-solid with stable long-term support (LTS) releases.
  • Requires no extensions and runs on any platform - no excuses!
  • Takes advantage of optional extensions to get better performance when available.
  • Supports latest version of PHP 8+ and PHP 7+ for best performance and support.
  • Still supports legacy PHP 5.3+ and HHVM for maximum compatibility.
  • Well designed and reusable components.
  • Decoupled parts so they can be replaced by alternate implementations.
  • Carefully tested (unit & functional).
  • Promotes standard PSRs where possible for maximum interoperability.
  • Aims to be technology neutral, so you can use your preferred application stack.
  • Small core team of professionals supported by large network of outside contributors.


Core Components

EventLoop

ReactPHP's core reactor event loop that libraries can use for evented I/O.

Read the documentation

Stream

Event-driven readable and writable streams for non-blocking I/O in ReactPHP.

Read the documentation

Promise

Promises/A implementation for PHP.

Read the documentation

Async

Async utilities and fibers for ReactPHP.

Read the documentation

Network Components

Socket

Async, streaming plaintext TCP/IP and secure TLS socket server and client connections for ReactPHP.

Read the documentation

Datagram

Event-driven UDP client and server sockets for ReactPHP.

Read the documentation

HTTP

Event-driven, streaming HTTP client and server implementation for ReactPHP.

Read the documentation

DNS

Async DNS resolver for ReactPHP.

Read the documentation

Utility Components

Cache

Async, Promise-based cache interface for ReactPHP.

Read the documentation

ChildProcess

Event-driven library for executing child processes with ReactPHP.

Read the documentation

PromiseTimer

A trivial implementation of timeouts for Promises, built on top of ReactPHP.

Read the documentation

PromiseStream

The missing link between Promise-land and Stream-land for ReactPHP.

Read the documentation


Built with ReactPHP

Thruway

PHP Client and Router Library for Autobahn and WAMP (Web Application Messaging Protocol) for Real-Time Application Messaging

voryx/Thruway

PPM - PHP Process Manager

PPM is a process manager, supercharger and load balancer for modern PHP applications.

php-pm/php-pm

php-ar-drone

🚁 Port of node-ar-drone which allows user to control a Parrot AR Drone over PHP

jolicode/php-ar-drone

Ratchet

Asynchronous WebSocket server

ratchetphp/Ratchet

Predis\Async

Asynchronous PHP client library for Redis built on top of ReactPHP

nrk/predis-async

clue/redis-server

A Redis server implementation in pure PHP

clue/redis-server

And many more on our wiki page »


Articles

Sergey Zhuk

A series of articles covering ReactPHP: from the basics to the real application examples.

sergeyzhuk.me

Cees-Jan Kiewiet

Blog series about several ReactPHP components and how they work.

blog.wyrihaximus.net

Loïc Faugeron

Super Speed Symfony - ReactPHP.

gnugat.github.io

Marc J. Schmidt

Bring High Performance Into Your PHP App (with ReactPHP).

marcjschmidt.de


Talks

youtube.com
youtube.com
youtube.com

Get to know the people behind ReactPHP

We're a small core team of professionals. We help manage, maintain and steer the project.
But ReactPHP isn't just us. We're proudly supported by a large network of outside contributors from all over the world.

Christian Lück

Christian Lück

  • @clue on GitHub
  • @another_clue on Twitter
  • ❤️Sponsor @clue on GitHub Sponsors
Cees-Jan Kiewiet

Cees-Jan Kiewiet

  • @WyriHaximus on GitHub
  • @WyriHaximus on Twitter
  • ❤️Sponsor @WyriHaximus on GitHub Sponsors
Jan Sorgalla

Jan Sorgalla

  • @jsor on GitHub
  • @jansor on Twitter
Chris Boden

Chris Boden

  • @cboden on GitHub
  • @boden_c on Twitter

Support

Do you have a question and need help with ReactPHP?
Don't worry, we're here to help!

As a first step, check the elaborate documentation that comes with each component (see links to individual documentation for each component above). If you find your question is not answered within the documentation, there's a fair chance that it may be relevant to more people. Please do not hesitate to file your question as an issue in the relevant component so others can also participate.

You can find our official channel at reactphp/reactphp on Gitter.im. Many of us are available in this channel, so many questions get answered in a few minutes to some hours. We also use this channel to announce all new releases and ongoing development efforts.

Also follow @reactphp on Twitter for updates. We use this mostly for noteworthy, bigger updates and to keep the community updated about ongoing development efforts. You can always use the #reactphp hashtag if you have anything to share!

We're a very open project and we prefer public communication whenever possible, so that more people can participate and help getting the best solutions available. At the same time, we realize that some things are better addressed in private.

Whether you just want to say thank you, want to report a security issue or want to help sponsor a certain feature development, you can reach out to the core team in private by sending an email to [email protected]. Please keep in mind that we're a small team of volunteers and do our best to support anybody reaching out.

Do you want to support ReactPHP? Awesome! Let's start with letting the the world know why you think ReactPHP is awesome and try to help others getting on board! Send a tweet, write a blog post, give a talk at your local user group or conference or even write a book. There are many ways you can help. You can always reach out to us in private and help others in our support channels. Thank you!

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.