spiral / roadrunner
RoadRunner: High-performance PHP application server, load-balancer and process manager written in Golang
Installs: 1 045 514
Dependents: 63
Suggesters: 3
Security: 0
Stars: 6 476
Watchers: 152
Forks: 359
Open Issues: 51
Language:Go
Type:metapackage
Requires
- spiral/roadrunner-cli: ^2.0
- spiral/roadrunner-http: ^2.0
- spiral/roadrunner-worker: ^2.0
- dev-master
- 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/go_modules/github.com/spf13/viper-1.12.0
- dev-stable
- dev-release/v2.10.2
- dev-dependabot/go_modules/github.com/roadrunner-server/service/v2-2.14.10
- dev-dependabot/go_modules/github.com/roadrunner-server/boltdb/v2-2.14.7
- dev-dependabot/go_modules/github.com/roadrunner-server/new_relic/v2-2.13.9
- dev-dependabot/go_modules/github.com/roadrunner-server/http/v2-2.18.0
- dev-dependabot/go_modules/github.com/roadrunner-server/memory/v2-2.13.5
This package is auto-updated.
Last update: 2022-05-26 22:27:25 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 | Release schedule
Features:
- Production-ready
- PCI DSS compliant
- PSR-7 HTTP server (file uploads, error handling, static files, hot reload, middlewares, event listeners)
- HTTPS and HTTP/2 support (including HTTP/2 Push, H2C)
- A Fully customizable server, FastCGI support
- Flexible environment configuration
- No external PHP dependencies (64bit version required), drop-in (based on Goridge)
- Process manager and task pipeline
- Integrated metrics (Prometheus)
- Workflow engine by Temporal.io
- Works over TCP, UNIX sockets and standard pipes
- Automatic worker replacement and safe PHP process destruction
- Worker create/allocate/destroy timeouts
- Max jobs per worker
- Worker lifecycle management (controller)
- maxMemory (graceful stop)
- TTL (graceful stop)
- idleTTL (graceful stop)
- execTTL (brute, max_execution_time)
- Payload context and body
- Protocol, worker and job level error management (including PHP errors)
- Development Mode
- Integrations with Symfony, Laravel, Slim, CakePHP, Zend Expressive
- Application server for Spiral
- Included in Laravel Octane
- Automatic reloading on file changes
- Works on Windows (Unix sockets (AF_UNIX) supported on Windows 10)
Installation:
To get the roadrunner binary file you can use our docker image: spiralscout/roadrunner:2.X.X
(more information about
image and tags can be found here) or use the GitHub package: ghcr.io/roadrunner-server/roadrunner:2.X.X
- Docker:
FROM ghcr.io/roadrunner-server/roadrunner:2.X.X AS roadrunner FROM php:8.1-cli COPY --from=roadrunner /usr/bin/rr /usr/local/bin/rr # USE THE RR
- CLI
$ composer require spiral/roadrunner:v2.0 nyholm/psr7 $ ./vendor/bin/rr get-binary
- Ubuntu (Debian-derivatives):
$ wget https://github.com/roadrunner-server/roadrunner/releases/download/v2.X.X/roadrunner-2.X.X-linux-amd64.deb $ sudo dpkg -i roadrunner-2.X.X-linux-amd64.deb
Configuration can be located in .rr.yaml
file (full sample):
# configuration version: https://roadrunner.dev/docs/beep-beep-config/2.x/en version: '2.7' 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
License:
The MIT License (MIT). Please see LICENSE
for more information. Maintained
by Spiral Scout.
Contributors
Thanks to all the people who already contributed!