A high-performance PHP application server and process manager written in Go, designed to replace traditional setups like Nginx+FPM.
RoadRunner is a high-performance PHP application server and process manager written in Go. It replaces traditional PHP-FPM and Nginx setups by running PHP applications as persistent services, significantly improving throughput and resource efficiency. It solves the performance limitations of typical PHP architectures by leveraging Go's concurrency and a plugin-based extensible system.
PHP developers and DevOps engineers building high-traffic web applications, APIs, or microservices that require better performance than traditional PHP-FPM setups. It's particularly suited for teams needing scalable process management and advanced features like queues, gRPC, or workflow engines.
Developers choose RoadRunner for its exceptional performance gains over PHP-FPM, extensible plugin ecosystem, and production-ready features like automatic TLS, metrics, and process supervision. Its unique selling point is combining PHP's developer experience with Go's efficiency through a clean, configuration-driven approach.
🤯 High-performance PHP application server, process manager written in Go and powered with plugins
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports HTTP/2/3 and FCGI with PSR-7/17 compatibility, automatic TLS, and middleware like gzip, significantly boosting throughput over traditional PHP-FPM setups as highlighted in the README.
Offers a wide range of plugins for queues (Kafka, RabbitMQ), KV stores (Redis), gRPC, and OpenTelemetry, enabling easy integration of advanced features without external services.
Includes systemd-like services with auto-restarts and execution limiters, ensuring application stability and high availability in production environments.
Provides built-in support for Temporal workflows and Centrifugo WebSockets, simplifying the implementation of complex distributed systems components directly from the README.
Requires specific PHP extensions (php-curl, php-zip, php-sockets) and managing a Go binary, which is more involved than standard PHP environments, as noted in the installation notes.
Uses YAML configuration files with numerous options, which can be daunting for developers accustomed to simpler PHP-FPM or web server setups.
Relies on a Go-compiled binary, adding deployment complexity and potential cross-platform compatibility issues that aren't present in pure PHP solutions.
Some plugins, especially for niche use cases, may have less community support or documentation compared to established PHP alternatives, as the ecosystem is still growing.