diff options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 49 |
1 files changed, 8 insertions, 41 deletions
@@ -1,3 +1,5 @@ +[WIP] + <p align="center"> <img src="https://user-images.githubusercontent.com/796136/50286124-6f7f3780-046f-11e9-9f45-e8fedd4f786d.png" height="75px" alt="RoadRunner"> </p> @@ -14,7 +16,7 @@ </p> 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. +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. @@ -29,7 +31,7 @@ Features: - 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) -- Fully customizable server, FastCGI support +- A Fully customizable server, FastCGI support - Flexible environment configuration - No external PHP dependencies (64bit version required), drop-in (based on [Goridge](https://github.com/spiral/goridge)) - Load balancer, process manager and task pipeline @@ -39,11 +41,11 @@ Features: - Automatic worker replacement and safe PHP process destruction - Worker create/allocate/destroy timeouts - Max jobs per worker -- Worker lifecycle management (controller) +- Worker lifecycle management (controller) - maxMemory (graceful stop) - TTL (graceful stop) - idleTTL (graceful stop) - - execTTL (brute, max_execution_time) + - execTTL (brute, max_execution_time) - Payload context and body - Protocol, worker and job level error management (including PHP errors) - Very fast (~250k rpc calls per second on Ryzen 1700X using 16 threads) @@ -54,48 +56,13 @@ Features: Installation: -------- -To install: ``` -$ composer require spiral/roadrunner -$ ./vendor/bin/rr get-binary +go get -u github.com/spiral/roadrunner/v2 ``` > 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](https://hub.docker.com/r/spiralscout/roadrunner/)) -Extensions: --------- -| Extension | Current Status -| --- | --- -spiral/jobs | [![Latest Stable Version](https://poser.pugx.org/spiral/jobs/version)](https://packagist.org/packages/spiral/jobs) [![Build Status](https://travis-ci.org/spiral/jobs.svg?branch=master)](https://travis-ci.org/spiral/jobs) [![Codecov](https://codecov.io/gh/spiral/jobs/branch/master/graph/badge.svg)](https://codecov.io/gh/spiral/jobs/) -spiral/php-grpc | [![Latest Stable Version](https://poser.pugx.org/spiral/php-grpc/version)](https://packagist.org/packages/spiral/php-grpc) [![Build Status](https://travis-ci.org/spiral/php-grpc.svg?branch=master)](https://travis-ci.org/spiral/php-grpc) [![Codecov](https://codecov.io/gh/spiral/php-grpc/branch/master/graph/badge.svg)](https://codecov.io/gh/spiral/php-grpc/) -spiral/broadcast | [![Latest Stable Version](https://poser.pugx.org/spiral/broadcast/version)](https://packagist.org/packages/spiral/broadcast) [![Build Status](https://travis-ci.org/spiral/broadcast.svg?branch=master)](https://travis-ci.org/spiral/broadcast) [![Codecov](https://codecov.io/gh/spiral/broadcast/branch/master/graph/badge.svg)](https://codecov.io/gh/spiral/broadcast/) -spiral/broadcast-ws | [![Latest Stable Version](https://poser.pugx.org/spiral/broadcast-ws/version)](https://packagist.org/packages/spiral/broadcast-ws) [![Build Status](https://travis-ci.org/spiral/broadcast-ws.svg?branch=master)](https://travis-ci.org/spiral/broadcast-ws) [![Codecov](https://codecov.io/gh/spiral/broadcast-ws/branch/master/graph/badge.svg)](https://codecov.io/gh/spiral/broadcast-ws/) - -Example: --------- - -```php -<?php -// worker.php -ini_set('display_errors', 'stderr'); -include "vendor/autoload.php"; - -$relay = new Spiral\Goridge\StreamRelay(STDIN, STDOUT); -$psr7 = new Spiral\RoadRunner\PSR7Client(new Spiral\RoadRunner\Worker($relay)); - -while ($req = $psr7->acceptRequest()) { - try { - $resp = new \Zend\Diactoros\Response(); - $resp->getBody()->write("hello world"); - - $psr7->respond($resp); - } catch (\Throwable $e) { - $psr7->getWorker()->error((string)$e); - } -} -``` - Configuration can be located in `.rr.yaml` file ([full sample](https://github.com/spiral/roadrunner/blob/master/.rr.yaml)): ```yaml @@ -116,4 +83,4 @@ $ ./rr serve -v -d License: -------- -The MIT License (MIT). Please see [`LICENSE`](./LICENSE) for more information. Maintained by [Spiral Scout](https://spiralscout.com). +The MIT License (MIT). Please see [`LICENSE`](./LICENSE) for more information. Maintained by [Spiral Scout](https://spiralscout.com).
\ No newline at end of file |