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.
Join our discord server: Link
Official Website | Documentation | Release schedule
- Production-ready
 - PCI DSS compliant
 - PSR-7 HTTP server (file uploads, error handling, static files, hot reload, middlewares, event listeners)
 - HTTPS and HTTP/2 support (including HTTP/2 Push, H2C)
 - A Fully customizable server, FastCGI support
 - Flexible environment configuration
 - No external PHP dependencies (64bit version required), drop-in (based on Goridge)
 - Process manager and task pipeline
 - Integrated metrics (Prometheus)
 - Workflow engine by Temporal.io
 - 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)
 - Development Mode
 - Integrations with Symfony, Laravel, Slim, CakePHP, Zend Expressive
 - Application server for Spiral
 - Included in Laravel Octane
 - Automatic reloading on file changes
 - Works on Windows (Unix sockets (AF_UNIX) supported on Windows 10)
 
To get the roadrunner binary file you can use our docker image: spiralscout/roadrunner:2.X.X (more information about
image and tags can be found here) or use the GitHub package: ghcr.io/roadrunner-server/roadrunner:2.X.X
- Docker:
 
FROM ghcr.io/roadrunner-server/roadrunner:2.X.X AS roadrunner
FROM php:8.1-cli
COPY --from=roadrunner /usr/bin/rr /usr/local/bin/rr
# USE THE RR- CLI
 
$ composer require spiral/roadrunner:v2.0 nyholm/psr7
$ ./vendor/bin/rr get-binary- Ubuntu (Debian-derivatives):
 
$ wget https://github.com/roadrunner-server/roadrunner/releases/download/v2.X.X/roadrunner-2.X.X-linux-amd64.deb
$ sudo dpkg -i roadrunner-2.X.X-linux-amd64.debConfiguration can be located in .rr.yaml
file (full sample):
# configuration version: https://roadrunner.dev/docs/beep-beep-config/2.x/en
version: '2.7'
rpc:
  listen: tcp://127.0.0.1:6001
server:
  command: "php worker.php"
http:
  address: "0.0.0.0:8080"
logs:
  level: errorRead more in Documentation.
<?php
use Spiral\RoadRunner;
use Nyholm\Psr7;
include "vendor/autoload.php";
$worker = RoadRunner\Worker::create();
$psrFactory = new Psr7\Factory\Psr17Factory();
$worker = new RoadRunner\Http\PSR7Worker($worker, $psrFactory, $psrFactory, $psrFactory);
while ($req = $worker->waitRequest()) {
    try {
        $rsp = new Psr7\Response();
        $rsp->getBody()->write('Hello world!');
        $worker->respond($rsp);
    } catch (\Throwable $e) {
        $worker->getWorker()->error((string)$e);
    }
}Available Plugins: link
To run application server:
$ ./rr serve
The MIT License (MIT). Please see LICENSE for more information. Maintained
by Spiral Scout.
Thanks to all the people who already contributed!
