RoadRunner

Total alerts

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

Repository: -------- This repository contains the codebase PSR-7 PHP workers. Check [spiral/roadrunner](https://github.com/spiral/roadrunner) to get application server. Installation: -------- To install application server and HTTP codebase: ```bash $ composer require spiral/roadrunner-http nyholm/psr7 ``` You can use the convenient installer to download the latest available compatible version of RoadRunner assembly: ```bash $ composer require spiral/roadrunner-cli --dev ``` To download latest version of application server: ```bash $ vendor/bin/rr get ``` > You can use any [PSR-17 compatible implementation](https://github.com/search?q=psr-17). Example: ------- To init abstract RoadRunner worker: ```php waitRequest(); } catch (\Throwable $e) { // Although the PSR-17 specification clearly states that there can be // no exceptions when creating a request, however, some implementations // may violate this rule. Therefore, it is recommended to process the // incoming request for errors. // // Send "Bad Request" response. $psr7->respond(new Response(400)); continue; } try { // Here is where the call to your application code will be located. // For example: // // $response = $app->send($request); // // Reply by the 200 OK response $psr7->respond(new Response(200, [], 'Hello RoadRunner!')); } catch (\Throwable $e) { // In case of any exceptions in the application code, you should handle // them and inform the client about the presence of a server error. // // Reply by the 500 Internal Server Error response $psr7->respond(new Response(500, [], 'Something Went Wrong!')); // Additionally, we can inform the RoadRunner that the processing // of the request failed. $worker->error((string)$e); } } ``` Testing: -------- This codebase is automatically tested via host repository - [spiral/roadrunner](https://github.com/spiral/roadrunner). License: -------- The MIT License (MIT). Please see [`LICENSE`](./LICENSE) for more information. Maintained by [Spiral Scout](https://spiralscout.com).