spiral / roadrunner
RoadRunner: High-performance PHP application server, load-balancer and process manager written in Golang
Installs: 352 605
Dependents: 44
Suggesters: 2
Security: 0
Stars: 4 874
Watchers: 141
Forks: 270
Open Issues: 44
Language:Go
Type:metapackage
Requires
- spiral/roadrunner-cli: ^2.0
- spiral/roadrunner-http: ^2.0
- spiral/roadrunner-worker: ^2.0
- dev-master
- 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/shirou/gopsutil-3.21.2incompatible
- dev-staging
This package is auto-updated.
Last update: 2021-03-02 06:47:29 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.
Official Website | Documentation
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)
- Load balancer, process manager and task pipeline
- Frontend agnostic (Queue, PSR-7, GRPC, etc)
- Integrated metrics (Prometheus)
- 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
- Automatic reloading on file changes
- Works on Windows (Unix sockets (AF_UNIX) supported on Windows 10)
Installation:
$ composer require spiral/roadrunner:v2.0 nyholm/psr7 $ ./vendor/bin/rr get-binary
For getting roadrunner binary file you can use our docker image:
spiralscout/roadrunner:X.X.X
(more information about image and tags can be found here)
Configuration can be located in .rr.yaml
file (full sample):
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); } }
Run:
To run application server:
$ ./rr serve
License:
The MIT License (MIT). Please see LICENSE
for more information. Maintained
by Spiral Scout.