Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/roadrunner-server/roadrunner
🤯 High-performance PHP application server, process manager written in Go and powered with plugins
https://github.com/roadrunner-server/roadrunner
application-server golang hacktoberfest http php psr-7 roadrunner rpc supervisor workers
Last synced: 3 days ago
JSON representation
🤯 High-performance PHP application server, process manager written in Go and powered with plugins
- Host: GitHub
- URL: https://github.com/roadrunner-server/roadrunner
- Owner: roadrunner-server
- License: mit
- Created: 2017-12-26T16:13:10.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2024-11-22T22:45:26.000Z (19 days ago)
- Last Synced: 2024-11-25T09:07:03.338Z (17 days ago)
- Topics: application-server, golang, hacktoberfest, http, php, psr-7, roadrunner, rpc, supervisor, workers
- Language: Go
- Homepage: https://docs.roadrunner.dev
- Size: 70.7 MB
- Stars: 7,934
- Watchers: 142
- Forks: 412
- Open Issues: 61
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG-2023.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-go - roadrunner-server/roadrunner - performance PHP application server, process manager written in Go and powered with plugins|7,125| (Popular)
- awesome-temporal - RoadRunner - PHP application server and process manager. (PHP / Libraries)
- awesome-resources - Roadrunner - A PHP Server written in Go. (Alternative PHP Servers / News)
- awesome-php - RoadRunner - High-performance PHP application server, load-balancer and process manager. (Configuration / Infrastructure)
- awesome-php-cn - RoadRunner - 高性能的PHP应用程序服务器、负载平衡器和过程管理. (配置 Configuration / 基础设施 Infrastructure)
- awesome-projects - RoadRunner - High-performance PHP application server, load-balancer and process manager. (Configuration / Infrastructure)
- awesome-go-extra - roadrunner - performance PHP application server, process manager written in Go and powered with plugins|6680|369|48|2017-12-26T16:13:10Z|2022-08-25T13:25:49Z| (Server Applications / HTTP Clients)
- awesome-php - RoadRunner - High-performance PHP application server, load-balancer and process manager. (Configuration / Infrastructure)
- StarryDivineSky - roadrunner-server/roadrunner
README
RoadRunner is an open-source (MIT licensed) high-performance PHP application server, process manager written in Go and powered with plugins ❤️.
It supports running as a service with the ability to extend its functionality on a per-project basis with plugins.# Features
**RoadRunner** features a range of plugins, including `HTTP(S)/2/3` and `fCGI` servers that are compatible with PSR-7/PSR-17 standards. This is just one of its many capabilities. It serves as an effective alternative to the traditional Nginx+FPM setup, providing improved performance and more flexibility. Its extensive plugin options go far beyond just `HTTP(S)/2/3` and `fCGI` servers, offering a broad range of functionalities:
- Queue drivers: RabbitMQ, Kafka, SQS, Beanstalk, NATS, In-Memory.
- KV drivers: Redis, Memcached, BoltDB, In-Memory.
- OpenTelemetry protocol support (`gRPC`, `http`, `jaeger`).
- [Workflow engine](https://github.com/temporalio/sdk-php) via [Temporal](https://temporal.io).
- `gRPC` server. For increased speed, the `protobuf` extension can be used.
- `HTTP(S)/2/3` and `fCGI` servers features **automatic TLS management**, **103 Early Hints** support and middleware like: Static, Headers, gzip, prometheus (metrics), send (x-sendfile), OTEL, proxy_ip_parser, etc.
- Embedded distribute lock plugin which manages access to shared resources.
- Metrics server (you might easily expose your own).
- WebSockets and Broadcast via [Centrifugo](https://centrifugal.dev) server.
- Systemd-like services manager with auto-restarts, execution time limiter, etc.
- Production-ready.
- And more 😉# Join our discord server: [Link](https://discord.gg/TFeEmCs)
Official Website |
Documentation |
Forum |
Release schedule |
Ask RoadRunner Guru# Installation
The easiest way to get the latest RoadRunner version is to use one of the pre-built release binaries, which are available for
OSX, Linux, FreeBSD, and Windows. Instructions for using these binaries are on the GitHub [releases page](https://github.com/roadrunner-server/roadrunner/releases).## Docker:
To get the roadrunner binary file you can use our docker image: `ghcr.io/roadrunner-server/roadrunner:2024.X.X` (more information about
image and tags can be found [here](https://github.com/roadrunner-server/roadrunner/pkgs/container/roadrunner)).```dockerfile
FROM ghcr.io/roadrunner-server/roadrunner:2024.X.X AS roadrunner
FROM php:8.3-cliCOPY --from=roadrunner /usr/bin/rr /usr/local/bin/rr
# USE THE RR
```Configuration located in the `.rr.yaml` file ([full sample](https://github.com/roadrunner-server/roadrunner/blob/master/.rr.yaml)):
## Installation via Composer
You can also install RoadRunner automatically using the command shipped with the composer package, run:```bash
composer require spiral/roadrunner-cli
./vendor/bin/rr get-binary
```Server binary will be available at the root of your project.
> **Note**
>
> PHP's extensions `php-curl` and `php-zip` are required to download RoadRunner automatically.
> PHP's extensions `php-sockets` need to be installed to run roadrunner.
> Check with `php --modules` your installed extensions.## Installation option for the Debian-derivatives (Ubuntu, Mint, MX, etc)
```bash
wget https://github.com/roadrunner-server/roadrunner/releases/download/v2024.X.X/roadrunner-2024.X.X-linux-amd64.deb
sudo dpkg -i roadrunner-2024.X.X-linux-amd64.deb
```## Download the latest release via curl:
```bash
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/roadrunner-server/roadrunner/master/download-latest.sh | sh
```## MacOS using [Homebrew](https://brew.sh/):
```bash
brew install roadrunner
```## Windows using [Chocolatey](https://community.chocolatey.org/):
```bash
choco install roadrunner
```---
Configuration can be located in `.rr.yaml` file ([full sample](https://github.com/roadrunner-server/roadrunner/blob/master/.rr.yaml)):
```yaml
version: '3'rpc:
listen: tcp://127.0.0.1:6001server:
command: "php worker.php"http:
address: "0.0.0.0:8080"logs:
level: error
```> Read more in [Documentation](https://docs.roadrunner.dev).
Example Worker:
--------```php
waitRequest()) {
try {
$rsp = new Psr7\Response();
$rsp->getBody()->write('Hello world!');$worker->respond($rsp);
} catch (\Throwable $e) {
$worker->getWorker()->error((string)$e);
}
}
```> [!IMPORTANT]
> If you see the `EOF` error, check that you have installed the PHP packages from [this step](https://github.com/roadrunner-server/roadrunner#installation-via-composer).
> If this does not help, try to execute the command `php worker.php` directly and check the output.---
### Available Plugins: [link](https://docs.roadrunner.dev)
Run:
----
To run application server:```
$ ./rr serve -c .rr.yaml
```License:
--------
The MIT License (MIT). Please see [`LICENSE`](./LICENSE) for more information. Maintained
by [Spiral Scout](https://spiralscout.com).## Contributors
Thanks to all the people who already contributed!