RoadRunner is an open source (MIT licensed) high-performance PHP application server, load balancer and process manager. It supports running as a service with the ability to extend its functionality on a per-project basis. RoadRunner includes PSR-7/PSR-17 compatible HTTP and HTTP/2 server and can be used to replace classic Nginx+FPM setup with much greater performance and flexibility. Features: -------- - production ready - PSR-7 HTTP server (file uploads, error handling, static files, hot reload, middlewares, event listeners) - HTTPS and HTTP/2 support (including HTTP/2 Push) - fully customizable server - flexible environment configuration - no external PHP dependencies, drop-in (based on [Goridge](https://github.com/spiral/goridge)) - load balancer, process manager and task pipeline - frontend agnostic ([Queue](https://github.com/spiral/jobs), PSR-7, [GRPC](https://github.com/spiral/php-grpc), etc) - integrated metrics (Prometheus) - works over TCP, unix sockets and standard pipes - automatic worker replacement and safe PHP process destruction - worker create/allocate/destroy timeouts - max jobs per worker - worker lifecycle management (controller) - maxMemory (graceful stop) - TTL (graceful stop) - idleTTL (graceful stop) - execTTL (brute, max_execution_time) - payload context and body - protocol, worker and job level error management (including PHP errors) - very fast (~250k rpc calls per second on Ryzen 1700X using 16 threads) - integrations with Symfony, Laravel, Slim, CakePHP, Zend Expressive, Spiral - works on Windows Example: -------- ```php acceptRequest()) { try { $resp = new \Zend\Diactoros\Response(); $resp->getBody()->write("hello world"); $psr7->respond($resp); } catch (\Throwable $e) { $psr7->getWorker()->error((string)$e); } } ``` Configuration can be located in `.rr.yaml` file ([full sample](https://github.com/spiral/roadrunner/blob/master/.rr.yaml)): ```yaml http: address: 0.0.0.0:8080 workers.command: "php psr-worker.php" ``` > Read more in [Wiki](https://github.com/spiral/roadrunner/wiki/PHP-Workers). License: -------- The MIT License (MIT). Please see [`LICENSE`](./LICENSE) for more information. Maintained by [SpiralScout](https://spiralscout.com).