Driver
Flow embark multiple drivers.
Coroutine
Drivers are useful to essentially provide asynchronous programming by using coroutines. Thus, this can be implemented in severals ways in most popular programming languages.
Coroutine are very similar to threads and provide concurrency but not parallelism. Advantage of using coroutine :
- this can be a preferred usage to thread for hard-realtime context.
- there is no need for synchronisation primitives such as mutexes, semaphore.
- it reduces the usage of system lock for sharing resources.
Amp Driver
To use Amp Driver, you have to require the library with composer
composer require amphp/amp
More documentation can be found https://amphp.org
Fiber Driver
More documentation can be found https://www.php.net/manual/fr/language.fibers.php
ReactPHP Driver
To use ReactPHP Driver, you have to require the library with composer
composer require react/async
More documentation can be found https://reactphp.org
Spatie Driver
To use Spatie Driver, you have to require the library with composer
composer require spatie/async
More documentation can be found https://github.com/spatie/async
Swoole Driver
To use Swoole Driver, you have to add the extension with your current running PHP
pecl install openswoole-22.0.0
More documentation can be found https://openswoole.com
Make your custom driver
You can make your custom driver by implementing Flow\DriverInterface