RoadRunner alternatives and similar packages
Based on the "Server Applications" category.
Alternatively, view RoadRunner alternatives based on common mentions on social networks and blogs.
-
Ponzu
CMS with automatic JSON API for "thick client" front-ends. Featuring auto HTTPS, HTTP/2 Server Push, and flexible CMS written in Go. -
Jocko
Kafka implemented in Golang with built-in coordination (No ZK dep, single binary install, Cloud Native) -
Rendora
dynamic server-side rendering using headless Chrome to effortlessly solve the SEO problem for modern javascript websites -
Golang API Starter Kit
Go Server/API boilerplate using best practices DDD CQRS ES gRPC -
goproxy
🦁 goproxy is a proxy server which can forward http or https requests to remote servers./ goproxy 是一个反向代理服务器,支持转发 http/https 请求。 -
Eru
Eru, a simple, stateless, flexible, production-ready orchestrator designed to easily integrate into existing workflows. Can run any virtualization things in long or short time. -
Simple CRUD App w/ Gorilla/Mux, MariaDB
Simple CRUD Application with Go, Mux, MariaDB. -
go-feature-flag
A feature flag solution, with only a YAML file in the backend (S3, GitHub, HTTP, local file ...), no server to install, just add a file in a central system and refer to it. -
simple-jwt-provider
Simple and lightweight provider which exhibits JWTs, supports login, password-reset (via mail) and user management. -
cortex-tenant
Prometheus remote write proxy that adds add Cortex tenant ID header based on metric labels.
Get performance insights in less than 4 minutes
Do you think we are missing an alternative of RoadRunner or a related project?
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)
- 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)
- Very fast (~250k rpc calls per second on Ryzen 1700X using 16 threads)
- 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:
To install:
$ composer require spiral/roadrunner
$ ./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)
Extensions:
Extension | Current Status |
---|---|
spiral/jobs | |
spiral/php-grpc | |
spiral/broadcast | |
spiral/broadcast-ws |
Example:
<?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):
http:
address: 0.0.0.0:8080
workers.command: "php worker.php"
Read more in Documentation.
Run:
To run application server:
$ ./rr serve -v -d
License:
The MIT License (MIT). Please see [LICENSE
](./LICENSE) for more information. Maintained by Spiral Scout.
*Note that all licence references and agreements mentioned in the RoadRunner README section above
are relevant to that project's source code only.