spiral/roadrunner
RoadRunner is a high-performance PHP application server and process manager written in Go. It runs PHP apps as long-lived workers and supports plugin-based features like HTTP/2/3, HTTPS, and FastCGI with PSR-7/17 compatibility—an alternative to Nginx+FPM.
nyholm/psr7 or spiral/psr7), enabling middleware-based routing, request/response handling, and dependency injection.php-fpm with RoadRunner’s HTTP plugin. Laravel’s Illuminate\Http\Request/Response can be mapped to PSR-7 via spiral/roadrunner-http or custom middleware.queue:work can use RoadRunner’s Jobs plugin for RabbitMQ/Kafka).predis/php-redis with RoadRunner’s KV plugin for Redis/Memcached.grpc-php package with RoadRunner’s gRPC plugin for high-performance RPC.gzip, prometheus, otel) can augment Laravel’s middleware pipeline (e.g., add observability without modifying Laravel code).spiral/framework or custom bindings)..rr.yaml replaces php-fpm.conf/nginx.conf; misconfigurations may cause silent failures (e.g., wrong server.command).KV plugin fixes in v2025.1.1).prometheus middleware must be explicitly configured; Laravel’s monolog may need adaptation.temporalio/sdk-php).nginx+php-fpm under Laravel’s workload (e.g., API routes, queue workers)?auth:api) conflict with RoadRunner’s HTTP middleware order?App\Http\Kernel middleware with RoadRunner’s (e.g., otel, gzip)?queue:work directly use RoadRunner’s Jobs plugin without rewriting workers?dispatchAfterResponse) in RoadRunner’s async model?8080 for HTTP, 6001 for RPC)?laravel-debugbar or Sentry?Whoops/Symfony ErrorHandler)?Centrifugo for WebSockets vs. Laravel Echo).KV plugin crashes in v2025.1.0)?php-fpm with RoadRunner’s HTTP plugin. Use spiral/roadrunner-http for PSR-7 compatibility.database/redis queues to RoadRunner’s Jobs plugin (e.g., rabbitmq, kafka).predis with RoadRunner’s KV plugin for Redis/Memcached.grpc-php + RoadRunner’s gRPC plugin for high-performance RPC.prometheus middleware + Laravel’s laravel-prometheus.otel plugin + Laravel’s opentelemetry-php.Temporal plugin for long-running workflows (e.g., order processing).| Component | Current Setup | RoadRunner Target | Migration Steps |
|---|---|---|---|
| Web Server | Nginx + PHP-FPM | RoadRunner HTTP plugin |
1. Add spiral/roadrunner-http to Laravel. 2. Configure .rr.yaml with http.address. 3. Replace public/index.php with PSR-7 worker. |
| Queue Workers | queue:work (Redis/RabbitMQ) |
RoadRunner Jobs plugin |
1. Install spiral/roadrunner-jobs. 2. Update queue.php to use RoadRunner\Jobs\JobsWorker. 3. Configure .rr.yaml with jobs.queue. |
| Caching | Predis/Redis | RoadRunner KV plugin |
1. Replace Redis facade with RoadRunner\KV\KV. 2. Configure .rr.yaml with kv.redis. |
| gRPC Services | Custom FPM setup | RoadRunner gRPC plugin |
1. Add spiral/roadrunner-grpc. 2. Configure .rr.yaml with grpc.proto. 3. Use Laravel’s grpc-php for service definitions. |
| WebSockets | Laravel Echo + Pusher | RoadRunner Centrifugo plugin |
1. Install spiral/roadrunner-centrifugo. 2. Configure .rr.yaml with centrifugo. 3. Update Echo to use Centrifugo. |
| Observability | Laravel Debugbar/Sentry | RoadRunner otel + prometheus |
1. Add spiral/roadrunner-otel. 2. Configure .rr.yaml with otel.endpoint. 3. Integrate with Laravel’s opentelemetry-php. |
spiral/roadrunner-lumen.How can I help you explore Laravel packages today?