gitmyhub

roadrunner

Go ★ 8.5k updated 22h ago

🤯 High-performance PHP application server, process manager written in Go and powered with plugins

High-performance PHP application server written in Go that keeps PHP workers alive between requests, replacing Nginx and PHP-FPM with a single faster process.

GoPHPYAMLsetup: moderatecomplexity 3/5

RoadRunner is an open-source application server for PHP, written in Go. Normally, PHP applications rely on a combination of Nginx (a web server) and FPM (a process manager that runs PHP code), and that setup has real overhead: each incoming request wakes up a fresh PHP process from scratch, which is slow. RoadRunner replaces that combination with a single, long-running process that keeps PHP workers alive between requests, so the application is already warm and ready when the next visitor arrives.

Beyond serving web requests, RoadRunner ships with a broad plugin system. You can add background job queues that connect to services like RabbitMQ, Kafka, or Amazon SQS. You can set up caching layers backed by Redis or Memcached. You can expose your application over gRPC, a protocol built for fast service-to-service communication. There is also built-in support for WebSockets, metrics collection, distributed locking (useful when multiple servers need to coordinate access to a shared resource), and workflow orchestration via Temporal.

Configuration lives in a single YAML file (.rr.yaml). You point it to a PHP worker script, tell it which port to listen on, and start the server with one command. The workers stay running and wait for incoming requests rather than spawning and dying with each one. The README includes a short PHP example showing the basic request-and-response loop a worker follows.

Installing RoadRunner is straightforward: pre-built binaries exist for Linux, macOS, Windows, and FreeBSD. You can also grab it through Docker, Homebrew (macOS), Chocolatey (Windows), a Debian package, or via a Composer helper script if you are already in a PHP project.

The project is MIT licensed and maintained by Spiral Scout. The README is sparse on production tuning details but points to a documentation site and a Discord community for further guidance.

Where it fits