All Projects β†’ spiral β†’ roadrunner-binary

spiral / roadrunner-binary

Licence: MIT license
πŸ’Ύ High-performance PHP application server, load-balancer and process manager written in Golang. RR2 releases repository.

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects
Dockerfile
14818 projects
PHP
23972 projects - #3 most used programming language

Projects that are alternatives of or similar to roadrunner-binary

roadrunner-docker-skeleton
local docker environment skeleton for RoadRunner
Stars: ✭ 73 (+69.77%)
Mutual labels:  roadrunner
framework
πŸ¦‹The PHP Framework For Code Poem As Free As Wind.
Stars: ✭ 65 (+51.16%)
Mutual labels:  roadrunner
laravel-roadrunner-in-docker
πŸš€ An example of Laravel app that runs in a docker container with RoadRunner
Stars: ✭ 109 (+153.49%)
Mutual labels:  roadrunner
jobs
RoadRunner: Background PHP workers, Queue brokers
Stars: ✭ 59 (+37.21%)
Mutual labels:  roadrunner
goridge-php
PHP Goridge Protocol implementation
Stars: ✭ 53 (+23.26%)
Mutual labels:  roadrunner
Roadrunner
🀯 High-performance PHP application server, load-balancer and process manager written in Golang
Stars: ✭ 6,122 (+14137.21%)
Mutual labels:  roadrunner
sdk-php
Temporal PHP SDK
Stars: ✭ 125 (+190.7%)
Mutual labels:  roadrunner
octane
Supercharge your Laravel application's performance.
Stars: ✭ 3,038 (+6965.12%)
Mutual labels:  roadrunner
roadrunner-laravel
Simple bridge between Symfony and RoadRunner.
Stars: ✭ 43 (+0%)
Mutual labels:  roadrunner
⚠️ THIS PROJECT WAS MOVED TO: https://github.com/roadrunner-server/roadrunner ⚠️

RoadRunner

Total alerts All releases

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 | 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)
  • Load balancer, 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:

$ 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).

Important notice: we strongly recommend to use a versioned tag (like 1.2.3) instead latest.

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].