spiral / roadrunner
RoadRunner: High-performance PHP application server and process manager written in Go and powered with plugins
Fund package maintenance!
roadrunner-server
Installs: 2 336 322
Dependents: 81
Suggesters: 1
Security: 0
Stars: 7 185
Watchers: 152
Forks: 391
Open Issues: 42
Language:Go
Type:metapackage
- dev-master
- v2023.1.4
- v2023.1.3
- v2023.1.2
- v2023.1.1
- v2023.1.0
- v2023.1.0-rc.2
- v2023.1.0-rc.1
- v2023.1.0-beta.1
- v2023.1.0-alpha.2
- v2023.1.0-alpha.1
- v2.12.3
- v2.12.2
- v2.12.2-alpha.2
- v2.12.2-alpha.1
- v2.12.1
- v2.12.1-rc.1
- v2.12.0
- v2.12.0-rc.1
- v2.12.0-beta.1
- v2.12.0-alpha.1
- v2.11.4
- v2.11.4-beta.1
- v2.11.3
- v2.11.3-rc.1
- v2.11.2
- v2.11.1
- v2.11.0
- v2.11.0-rc.1
- v2.11.0-beta.3
- v2.11.0-beta.2
- v2.11.0-beta.1
- v2.10.7
- v2.10.6
- v2.10.5
- v2.10.4
- v2.10.4-rc.1
- v2.10.3
- v2.10.2
- v2.10.1
- v2.10.0
- v2.10.0-rc.7
- v2.10.0-rc.6
- v2.10.0-rc.5
- v2.10.0-rc.4
- v2.10.0-rc.3
- v2.10.0-rc.2
- v2.10.0-rc.1
- v2.10.0-alpha.1
- v2.9.4
- v2.9.3
- v2.9.2
- v2.9.1
- v2.9.0
- v2.9.0-alpha.1
- v2.8.8
- v2.8.7
- v2.8.6
- v2.8.5
- v2.8.4
- v2.8.3
- v2.8.2
- v2.8.1
- v2.8.0
- v2.8.0-rc.2
- v2.8.0-rc.1
- v2.7.9
- v2.7.8
- v2.7.7
- v2.7.6
- v2.7.5
- v2.7.4
- v2.7.3
- v2.7.2
- v2.7.2-rc.4
- v2.7.2-rc.3
- v2.7.2-rc.2
- v2.7.2-rc.1
- v2.7.1
- v2.7.0
- v2.7.0-rc.2
- v2.7.0-rc.1
- v2.7.0-beta.1
- v2.6.3
- v2.6.2
- v2.6.1
- v2.6.0
- v2.6.0-rc.1
- v2.6.0-beta.1
- v2.6.0-alpha.5
- v2.6.0-alpha.4
- v2.6.0-alpha.3
- v2.6.0-alpha.2
- v2.6.0-alpha.1
- v2.5.3
- v2.5.2
- v2.5.1
- v2.5.0
- v2.5.0-rc.2
- v2.5.0-rc.1
- v2.5.0-beta.4
- v2.5.0-beta.3
- v2.5.0-beta.2
- v2.5.0-beta.1
- v2.5.0-alpha.2
- v2.5.0-alpha.1
- v2.4.1
- v2.4.0
- v2.4.0-rc.1
- v2.4.0-beta.1
- v2.4.0-alpha.1
- v2.3.2
- v2.3.1
- v2.3.1-rc.1
- v2.3.1-beta.6
- v2.3.1-beta.4
- v2.3.1-beta.3
- v2.3.1-beta.1
- v2.3.0
- v2.3.0-beta.3
- v2.3.0-beta.2
- v2.3.0-beta.1
- v2.2.1
- v2.2.0
- v2.1.1
- v2.1.0
- v2.1.0-beta.3
- v2.1.0-beta.2
- v2.1.0-beta.1
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.2-beta.2
- v2.0.2-beta.1
- v2.0.1
- v2.0.0
- v2.0.0-RC.4
- v2.0.0-RC.3
- v2.0.0-RC.1
- v2.0.0-beta.24
- v2.0.0-beta.22
- v2.0.0-beta.21
- v2.0.0-beta19
- v2.0.0-beta13
- v2.0.0-beta12
- v2.0.0-beta11
- v2.0.0-alpha22
- v2.0.0-alpha21
- v2.0.0-alpha20
- v2.0.0-alpha19
- v2.0.0-alpha18
- v2.0.0-alpha17
- v2.0.0-alpha16
- v2.0.0-alpha15
- v2.0.0-alpha14
- v2.0.0-alpha13
- v2.0.0-alpha12
- v2.0.0-alpha11
- v2.0.0-alpha10
- v2.0.0-alpha7
- v2.0.0-alpha6
- v2.0.0-alpha5
- v2.0.0-alpha3
- v2.0.0-alpha2
- v2.0.0-alpha1
- v1.9.2
- v1.9.1
- v1.9.0
- v1.8.4
- v1.8.3
- v1.8.2
- v1.8.1
- v1.8.0
- v1.7.1
- v1.7.0
- v1.6.4
- v1.6.3
- v1.6.2
- v1.6.1
- v1.6.0
- v1.5.3
- v1.5.2
- v1.5.1
- v1.5.0
- v1.4.8
- v1.4.7
- v1.4.6
- v1.4.5
- v1.4.4
- v1.4.3
- v1.4.2
- v1.4.1
- v1.4.0
- v1.3.7
- v1.3.6
- v1.3.5
- v1.3.4
- v1.3.3
- v1.3.2
- v1.3.1
- v1.3.0
- v1.2.8
- v1.2.7
- v1.2.6
- v1.2.5
- v1.2.4
- v1.2.3
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.1
- v1.1.0
- v1.0.5
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- v0.9.0
- dev-dependabot/github_actions/aquasecurity/trivy-action-0.11.0
- dev-dependabot/go_modules/github.com/roadrunner-server/kv/v4-4.1.11
- dev-stable
This package is auto-updated.
Last update: 2023-06-06 07:03:33 UTC
README
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 | Forum | Release schedule
Features:
- Production-ready
- PCI DSS compliant (HTTP plugin)
- PSR-7 HTTP server (file uploads, error handling, static files, hot reload, middleware, event listeners)
- HTTPS and HTTP/2 support (including HTTP/2 Push, H2C)
- A Fully customizable http(s)/2 server
- FastCGI support (HTTP plugin)
- Flexible environment configuration
- No external PHP dependencies (64bit version required)
- Integrated metrics (Prometheus)
- Workflow engine by Temporal.io
- Works over TCP, UNIX sockets and process pipes
- Automatic worker replacement, graceful and safe PHP process destruction
- Worker create/allocate/destroy timeouts
- Max requests per worker limitation
- Worker lifecycle management (controller)
- max_memory (graceful stop)
- ttl (graceful stop)
- idle_ttl (graceful stop)
- exec_tll (brute, max_execution_time)
- Protocol, worker and job level error management (including PHP errors)
- Development Mode
- Integrations with Symfony, Laravel, Slim, CakePHP, Zend Expressive
- Application server for Spiral
- Works on Windows 10/11 and WSL2
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:
To get the roadrunner binary file you can use our docker image: ghcr.io/roadrunner-server/roadrunner:2023.X.X
(more information about
image and tags can be found here).
FROM ghcr.io/roadrunner-server/roadrunner:2023.X.X AS roadrunner FROM php:8.2-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 command shipped with the composer package, run:
composer require spiral/roadrunner-http nyholm/psr7 ./vendor/bin/rr get-binary
Server binary will be available at the root of your project.
Note
PHP's extensions
php-curl
andphp-zip
are required to download RoadRunner automatically. PHP's extensionsphp-sockets
need to be installed to run roadrunner. Check withphp --modules
your installed extensions.
Installation option for the Debian-derivatives (Ubuntu, Mint, MX, etc)
wget https://github.com/roadrunner-server/roadrunner/releases/download/v2023.X.X/roadrunner-2023.X.X-linux-amd64.deb sudo dpkg -i roadrunner-2023.X.X-linux-amd64.deb
Dowload the latest release via curl:
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/roadrunner-server/roadrunner/master/download-latest.sh | sh
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); } }
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.
Contributors
Thanks to all the people who already contributed!