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.
google.golang.org/grpc to v1.79.3 to resolve CVE-2026-33186 — a server-side authorization bypass where malformed :path headers could circumvent path-based restricted deny rules in gRPC interceptors, CHORE (thanks @rebecca-canyon)otel pluginv1.39.0 vs v1.40.0); updated semconv to v1.40, BUG (thanks @dmitryuk)1.25.5.SIGUSR2 signal on Unix-like systems to enable graceful process restarts. When the configuration file is a symlink, RoadRunner will properly re-read the configuration from the symlink target after restart FR (thanks @koren88)1.25.4.v2025.1.5 with an updated template that pinned third-party dep tablewriter that caused problems when building RR.GoFiber.automaxprocs library from Uber has been removed, as Go 1.25 now includes this functionality natively.v2025.1.4 with an updated template that removed the automaxprocs dependency.Temporal pluginNO_PROXY environment variable to disable proxy usage FR (thanks @jur3)Kafka driverGoFiber, has had too many CVEs in recent months.Temporal pluginv2025.1.1 instead of this release if you're using KV plugin.v2024Kafka driver:Jobs plugin:AMQP driver:gRPC plugin:grpc@v1.72.0 and new List healthcheck method, grpc#2162 (thanks @matthewhartstonge)Redis driver:Kafka driver:gRPC plugin:exec_timeout), PR, (thanks @AleksandrKosovS)RoadRunner-Temporal plugin:http plugin:RoadRunner-Temporal plugin:gRPC (PHP) plugin:Jobs plugin:RoadRunner-Temporal plugin:Meet the new RoadRunner release! This time we have a lot of new features, improvements, and bug fixes. Let's dive in! In this realse we have added a new feature called Auto Workers Scaling. This feature allows users to scale their RoadRunner workers automatically, up to 100 additional workers. SQS plugin was significantly reworked without major breaking changes, please, read the updated documentation carefully. RoadRunner-Temporalplugin now supports API-Keys (which would be added via our SDK-PHP and documentated in it as well).
OTEL plugin:In-Memory KV driver:Status plugin:Symfony integration:Redis driver:SQS driver:NOTE: The default values for SQS now use short polling. Make sure you inspect your value for wait_time_seconds if you want to use long polling.Nats driver:Config plugin:Server plugin:server.on_init.exit_on_error to stop RoadRunner when on_init error occured: FR, (thanks @wizardist)RabbitMQ (AMQP) driver:Locks plugin:Metrics plugin:Velox:SQS driver and reworking the whole JSON schema across all plugins (which is actually HUGE).Metrics and RoadRunner-Temporal plugins.Redis plugin.OTEL plugin:Endpoint and Headers for gRPC if they're empty: PR, Support standard OTEL exporter protocol environment variables: PR. (thanks @devnev)RoadRunner-Temporal plugin:AMQP driver:redial_timeout was not respected when dynamically creating pipeline. BUG, (thanks @algirdasci)Velox Dockerfile).We are introducing a new term in the RoadRunner community — Community plugins. If you have a brilliant idea for the http middleware or JOBS driver or even a new plugin - feel free to check our Customization tutorials, create and notify us about your plugin.
RoadRunner now supports the Google Pub/Sub queues. Currently, this driver is released in BETA and has a few limitations which you may find in the docs
AMQP and Kafka JOBS driversThanks to our PHP team, KV now has AsyncStorageInterface support which makes your experience with the KV plugin even faster.
Feel free to read the technical details here: link
Jobs driver example for the Jobs plugin.
More info here: link.[roadrunner]
# ref -> reference, tag, commit or branch
ref = "v2024.2.0"
# the debug option is used to build RR with debug symbols to profile it with pprof
[debug]
enabled = false
## Rest is the same ....
Now, there is no need to include linker flags, and buildtime + build version would be inherited automatically.
If you need to debug your binary, please, use the debug option set to true.
Status plugin:JOBS plugin:ACK, NACK, and REQUEUE operations for the JOBS drivers. PHP SDK will be updated soon. FR, (thanks @shieldz80)v2024.2.0) and currently don't have restrictions on where to put the included config. Keep in mind that the path for the included configurations is calculated from the working directory of the RoadRunner process. FRRR core:RR_* env variables prefix. This was an undocumented feature which caused confusion, because any configuration value might be automatically replaced (without using env in the configuration) with a matching RR_* environment variable, PR.Temporal plugin:continue_as_new_suggested for the PHP Worker: PR.KafkamaxPollRecords from 10k to 100, PR.Endure container:v1.22.4.Worker:google-pub-sub:v2024.2.0. Stay tuned! (thanks @cv65kr)gRPC plugin:OTEL plugin:RR core plugin:workers/reset commands don't respect default config values: BUG, (thanks @r4m-alexd)HTTP plugin:gRPC plugin:gRPC, PRSDK:HTTP plugin:protobuf encoded payloads to prevent field reordering and JSON escaped symbols.Kafka driver:SDK:max_jobs option and all the workers restarted at the same time. This feature is enabled automatically. (thanks @Kaspiman)Centrifuge plugin:NotifyChannelState centrifuge API.Temporal plugin:Centrifuge plugin:OTEL plugin:endpoint and headers: BUG. Update docs on OTEL env usage: Docs, (thanks @fasdalf and @arku31).HTTP plugin:HTTP pluginSQS JOBS driverService pluginServer pluginRedis KV driverHTTP plugingRPC plugingRPC plugin: FR, docs: link (thanks @rauanmayemir)Beanstalk driverVeloxHow can I help you explore Laravel packages today?