Releases: roadrunner-server/roadrunner
Releases · roadrunner-server/roadrunner
v2023.3.9
🚀 v2023.3.9 🚀
HTTP plugin
- 🐛️ Streaming responses can experience a lock-up when the client disconnects early, BUG, (thanks @segrax)
SQS JOBS driver
- 🐛️ Use user specified credentials if they are set even if we're inside AWS, BUG, (thanks @matteokov)
Service plugin
Server plugin
Redis KV driver
🧹 Chore:
- 🧑🏭 Dependencies: update project/system dependencies.
- 🧑🏭 Docs: update docs, BUG.
v2023.3.8
🚀 v2023.3.8 🚀
HTTP plugin
gRPC plugin
- 🔥 Experimental support for the OTLP protocol inside the
gRPCplugin: FR, docs: link (thanks @rauanmayemir)
Beanstalk driver
- 🐛️ Fix NPE on empty options BUG, (thanks @SerhiiMova).
Velox
- 🔥 To ensure that Velox is able to build every RoadRunner version, we've added a new CI CRON job that builds RoadRunner with Velox daily. This job is not related to the RoadRunner release process, but it will help us to ensure that Velox is always compatible with the latest RoadRunner version.
🧹 Chore:
- 🧑🏭 Dependencies: update project/system dependencies.
v2023.3.7
🚀 v2023.3.7 🚀
gRPC plugin:
- 🔥 Re-enable HTTP health and readiness checks via regular endpoints
/healthand/ready.
AMQP driver:
- 🐛️ Fix mapping for the RabbitMQ type
List(Golang[]any), BUG, (thanks @iborysenko). - 🐛️ Fix an edge case for the DLX queue type when user doesn't specify any queue, but use
Pushmethod with delays, BUG, (thanks @fereron).
🧹 Chore:
- 🧑🏭 Dependencies: update project/system dependencies.
v2023.3.6
v2023.3.5
🚀 v2023.3.5 🚀
Config plugin:
- 🔥 Add the ability to include
.envfiles in the configuration (experimental feature): Docs, (thanks @OO00O0O).
Temporal plugin:
- 🐛️ Fix bug with incorrect pool destroy order: BUG, (thanks @pfy-oleksii-storozhylov).
HTTP plugin:
🧹 Chore:
- 🧑🏭 Dependencies: update project (system) dependencies.
v2023.3.4
🚀 v2023.3.4 🚀
🔥 Features:
RR Core:
- ✒️ Experimental features: Add support for the experimental features: Docs.
👀 Plugins:
- ✒️ NATS driver: Replace the old JetStream client with the new one: FR, API.
- ✒️ Config driver: Add experimental support for merging two and more configuration files: FR, Docs, (thanks @hugochinchilla)
- ✒️ Headers middleware: Add support for the regular expressions for
origin: FR, Docs, (thanks @orlandothoeny)
🩹 Fixes
- 🐛 HTTP Plugin: Unable to POST relatively chunky POST: BUG, (thanks @FluffyDiscord)
v2023.3.3
v2023.3.2
v2023.3.1
v2023.3.0
Description of Changes
🚀 v2023.3.0 🚀
🔥 Features:
RR Core:
👀 JOBS plugin:
- ✒️ AMQP Driver: Support for a custom
routing_keyin the JOBS payload: FR, (thanks @rauanmayemir) - ✒️ JOBS plugin: Parallel pipelines start/stop/destroy initialization. If you have much number of the pipelines,
this feature should significantly reduce RR startup/shutdown time: FR, (thanks @Kaspiman)
👀 KV drivers (all):
- ✒️ Support for OTEL across all KV drivers: FR
👀 App-Logger plugin:
- ✒️ Added new methods for your logger to log with context (message + key-values array): FR, (thanks @Baiquette)
👀 Temporal plugin:
👀 Service plugin:
Configuration example:
service:
schedule:run:
command: "bin/console schedule:run"
process_num: 1
exec_timeout: 0s
remain_after_exit: true
service_name_in_log: false
restart_sec: 60
user: www-data # <---------- [NEW]
group: www-data # <---------- [NEW]👀 HTTP plugin:
Worker example:
<?php
require __DIR__ . '/vendor/autoload.php';
use Spiral\RoadRunner;
ini_set('display_errors', 'stderr');
require __DIR__ . "/vendor/autoload.php";
$worker = RoadRunner\Worker::create();
$http = new RoadRunner\Http\HttpWorker($worker);
$read = static function (): Generator {
foreach (\file(__DIR__ . '/test.txt') as $line) {
try {
yield $line;
} catch (Spiral\RoadRunner\Http\Exception\StreamStoppedException) {
// Just stop sending data
return;
}
}
};
try {
while ($req = $http->waitRequest()) {
$http->respond(200, $read());
}
} catch (\Throwable $e) {
$worker->error($e->getMessage());
}Worker example:
<?php
use Spiral\RoadRunner;
ini_set('display_errors', 'stderr');
require __DIR__ . "/vendor/autoload.php";
$worker = RoadRunner\Worker::create();
$http = new RoadRunner\Http\HttpWorker($worker);
$read = static function (): Generator {
$limit = 10;
foreach (\file(__DIR__ . '/test.txt') as $line) {
foreach (explode('"', $line) as $chunk) {
try {
usleep(50_000);
yield $chunk;
} catch (Spiral\RoadRunner\Http\Exception\StreamStoppedException $e) {
// Just stop sending data
return;
}
if (--$limit === 0) {
return;
}
}
}
};
try {
while ($req = $http->waitRequest()) {
$http->respond(103, '', headers: ['Link' => ['</style111.css>; rel=preload; as=style'], 'X-103' => ['103']], endOfStream: false);
$http->respond(200, $read(), headers: ['X-200' => ['200']], endOfStream: true); // your regular response
}
} catch (\Throwable $e) {
$worker->error($e->getMessage());
}👀 Server plugin:
- ✒️ RAW command support: Support for raw commands, which are not validated by RR and may contain spaces. Note that this feature is only supported via
.rr.yamlconfiguration: FR, (thanks @nunomaduro)
First argument should be a command (executable) and the rest of the arguments are passed to the command as arguments.
version: "3"
server:
command: ["php", "../../php_test_files/client.php echo pipes"]
relay: "pipes"
relay_timeout: "20s"version: "3"
server:
command:
- "php"
- "../../php_test_files/client.php echo pipes"
relay: "pipes"
relay_timeout: "20s"🩹 Fixes:
- 🐛 RR Core: Actualize, according to the docs
./rr jobs list/stop/resumecommands: PR, (thanks @gam6itko). - 🐛 JOBS plugin: Correctly handle OTEL span on listener error: PR, (thanks @Kaspiman).
- 🐛 RR tests: Fix tests failures on Darwin: PR, (thanks @shyim).
- 🐛 Streaming: Add stream timeout (will be configurable in the next release). Fix loss of the first chunk of the streamed response.
🧹 Chore:
- 🧑🏭 Golang: Update Golang version to v1.21.
- 🧑🏭 Dependencies: update project dependencies.