mirror of
https://github.com/danog/amp.git
synced 2024-12-03 09:57:51 +01:00
commit
6113525227
41
README.md
Normal file
41
README.md
Normal file
@ -0,0 +1,41 @@
|
||||
# Event Loop Interopability
|
||||
|
||||
The purpose of this proposal is to provide a common interface for event loop
|
||||
implementations. This will allow libraries and components from different
|
||||
vendors to operate in an event driven architecture, sharing a common event
|
||||
loop.
|
||||
|
||||
## 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 PHP 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
|
||||
|
||||
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
|
||||
|
||||
## 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)
|
||||
* [Niklas Keller](https://github.com/kelunik)
|
||||
* [Stephen M. Coakley](https://github.com/coderstephen)
|
Loading…
Reference in New Issue
Block a user