roadrunner-server/roadrunner
roadrunner-server/roadrunner has 8,528 GitHub stars and 425 forks. Star changes are not measured yet. Last checked 2026-11-06 21:06 UTC. Last push 2026-11-01.
🤯 High-performance PHP application server, process manager written in Go and powered with plugins
What you can do
- Queue drivers: RabbitMQ, Kafka, SQS, Beanstalk, NATS, In-Memory.
- KV drivers: Redis, Memcached, BoltDB, In-Memory.
- OpenTelemetry protocol support (gRPC, http, jaeger).
- Workflow engine via Temporal.
Measured star growth
- in 24h
- Update delayed
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalRoadRunner is an open-source (MIT licensed) high-performance PHP application server, process manager written in Go and powered with plugins ❤️. It supports running as a service with the ability to extend its functionality on a per-project basis with plugins.
Features
RoadRunner features a range of plugins, including HTTP(S)/2/3 and fCGI servers that are compatible with PSR-7/PSR-17 standards. This is just one of its many capabilities. It serves as an effective alternative to the traditional Nginx+FPM setup, providing improved performance and more flexibility. Its extensive plugin options go far beyond just HTTP(S)/2/3 and fCGI servers, offering a broad range of functionalities:
- Queue drivers: RabbitMQ, Kafka, SQS, Beanstalk, NATS, In-Memory.
- KV drivers: Redis, Memcached, BoltDB, In-Memory.
- OpenTelemetry protocol support (
gRPC,http,jaeger). - Workflow engine via Temporal.
gRPCserver. For increased speed, theprotobufextension can be used.HTTP(S)/2/3andfCGIservers features automatic TLS management, 103 Early Hints support and middleware like: Static, Headers, gzip, prometheus (metrics), send (x-sendfile), OTEL, proxy_ip_parser, etc.- Embedded distribute lock plugin which manages access to shared resources.
- Metrics server (you might easily expose your own).
- WebSockets and Broadcast via Centrifugo server.
- Systemd-like services manager with auto-restarts, execution time limiter, etc.
- Production-ready.
- And more 😉
Join our discord server: Link
Official Website | Documentation | Forum | Release schedule | Ask RoadRunner Guru
Installation
The easiest way to get the latest RoadRunner version is to use one of the pre-built release binaries, which are available for OSX, Linux, FreeBSD, and Windows. Instructions for using these binaries are on the GitHub releases page.
Docker:
Use ghcr.io/roadrunner-server/roadrunner:3.0.0 to copy the RoadRunner binary into your application image. See the image tags.
FROM ghcr.io/roadrunner-server/roadrunner:3.0.0 AS roadrunner
FROM php:8.3-cli
COPY --from=roadrunner /usr/bin/rr /usr/local/bin/rr
# USE THE RR
Configuration located in the .rr.yaml file (full sample):
Installation via Composer
You can also install RoadRunner automatically using the command shipped with the composer package, run:
composer require spiral/roadrunner-cli
./vendor/bin/rr get-binary
Server binary will be available at the root of your project.
Note
PHP's extensions
php-curlandphp-zipare required to download RoadRunner automatically. PHP's extensionsphp-socketsneed to be installed to run roadrunner. Check withphp --modulesyour installed extensions.
Installation option for the Debian-derivatives (Ubuntu, Mint, MX, etc)
wget https://github.com/roadrunner-server/roadrunner/releases/download/v3.0.0/roadrunner-3.0.0-linux-amd64.deb
sudo dpkg -i roadrunner-3.0.0-linux-amd64.deb
Download the latest release via curl:
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/roadrunner-server/roadrunner/master/download-latest.sh | sh
MacOS using Homebrew:
brew install roadrunner
Windows using Chocolatey:
choco install roadrunner
Configuration can be located in .rr.yaml file (full sample):
version: '3'
rpc:
listen: tcp://127.0.0.1:6001
server:
command: "php worker.php"
http:
address: "0.0.0.0:8080"
logs:
level: error
Read more in Documentation.
Example Worker:
<?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);
}
}
[!IMPORTANT] If you see the
EOFerror, check that you have installed the PHP packages from this step. If this does not help, try to execute the commandphp worker.phpdirectly and check the output.
Available Plugins: link
Run:
To run application server:
$ ./rr serve -c .rr.yaml
License:
The MIT License (MIT). Please see LICENSE for more information. Maintained
by Spiral Scout.
Releases
Release Please updates a release PR on master from Conventional Commits. It updates CHANGELOG.md and .release-please-manifest.json. Merge the release PR to create the tag and GitHub release. The release workflows then build the binaries, Debian packages, gRPC compiler, and container images. Re-run failed jobs if a build fails.
Contributors
Thanks to all the people who already contributed!
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
560,751 starspublic-apis/public-apis
A collective list of free APIs
496,969 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
440,579 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,132 stars