Modernizing PHP Applications with Golang

RoadRunner is a high-performance PHP application server, load-balancer, and process manager written in Golang.

Production Ready

RoadRunner can be installed and used in production right away for even the biggest applications under constant load.

High Performance

RoadRunner utilizes goroutines and the multi-threading capabilities of Golang to bring maximum performance to PHP applications.

Works Everywhere

You can download or compile RoadRunner binaries that work on Mac OS, Windows, Linux, FreeBSD, and ARM.

Golang Extensions

RoadRunner provides a flexible framework that allows you to integrate any Golang library with your application using Goridge RPC protocol.

Rich Error Management

RoadRunner supports effective application, server and protocol error handling. You can also connect custom handlers or reporters like Sentry, Prometheus, etc.

HTTP/2, gRPC, PSR-7

RoadRunner offers a versatile foundation library that allows for running your application under HTTP/2, gRPC, Queue, etc.

How to install RoadRunner

A simple guide to using RoadRunner

RoadRunner can be compiled on Linux, OSX, Windows and other 64 bit environments as the only requirement is Go.

To build:

$ make

To test:

$ make test

Or download RoadRunner binaries from the release page.

Create a PHP worker using the following guide.

                                    while ($req = $psr7->acceptRequest()) {
        $resp = new \Zend\Diactoros\Response();
        $resp->getBody()->write("hello world");
        $psr7->respond($resp);
}

To write a configuration file explaining how RoadRunner should run your application:

http: address: :8080 workers: command: "php psr-worker.php" pool: numWorkers: 4

Run your application by simply invoking:

$ ./rr serve -v -d

You can view your workers and their memory consumption using:

$ ./rr http:workers -i

Companies using RoadRunner

Contact us