spiral/roadrunner-bridge
Bridge RoadRunner plugins into Spiral Framework apps. Provides bootloaders for HTTP, Queue/Jobs, KV Cache, gRPC, Centrifugo, TCP, Metrics, Logger, Locks, and scaffolding integration. Requires PHP 8.1+ and Spiral 3.14+.
Full Changelog: https://github.com/spiral/roadrunner-bridge/compare/v4.0.0-RC6...v4.0.0-RC7
[$request] instead of ['request' => $request]Full Changelog: https://github.com/spiral/roadrunner-bridge/compare/v4.0.0-RC5...v4.0.0-RC6
Full Changelog: https://github.com/spiral/roadrunner-bridge/compare/v3.7.0...v3.8.0
[@internal](https://github.com/internal) annotation and moved into Internal namespaces.[!NOTE] If there are files affected here that you use directly in your project, please open an issue.
Full Changelog: https://github.com/spiral/roadrunner-bridge/compare/v4.0.0-RC4...v4.0.0-RC5
Full Changelog: https://github.com/spiral/roadrunner-bridge/compare/v4.0.0-RC3...v4.0.0-RC4
RR_LOGGER_PREFIXRR_LOGGER_MODE with RoadRunnerLogsMode enum with cases development and productionFull Changelog: https://github.com/spiral/roadrunner-bridge/compare/v4.0.0-RC2...v4.0.0-RC3
Full Changelog: https://github.com/spiral/roadrunner-bridge/compare/v4.0.0-RC1...v4.0.0-RC2
Full Changelog: https://github.com/spiral/roadrunner-bridge/compare/v4.0.0-alpha2...v4.0.0-RC1
Full Changelog: https://github.com/spiral/roadrunner-bridge/compare/v3.6.2...v3.7.0
Full integration with interceptors of Spiral v3.14. In interceptors, you can interact with the request context, modify the input, handle the output, and perform any actions just before calling the target method.
Added support for container scopes. Each worker will open the corresponding scopes immediately after initialization (dispatcher scope) and before running interceptors (context scope).
Dispatcher scopes are used to limit service bindings. Contextu scopes limits the context. For example, in the HTTP module, the context is ServerRequestInterface from PSR-7. Corresponding contexts have been added for the others as well.
HTTP:
http - dispatcher scopehttp-request - context scope\Psr\Http\Message\ServerRequestInterface - context classCentrifugo:
centrifugo - dispatcher scopecentrifugo-request - context scope\RoadRunner\Centrifugo\Request\RequestInterface - context classgRPC (server):
grpc - dispatcher scopegrpc-request - context scope\Spiral\RoadRunnerBridge\GRPC\UnaryCallInterface - context classQueue:
queue - dispatcher scopequeue-task - context scope\Spiral\Queue\TaskInterface - context classTCP:
tcp - dispatcher scopetcp-request - context scope\Spiral\RoadRunner\Tcp\RequestInterface - context classThe worker initialization time has been significantly optimized by using tokenizer listeners when searching for gRPC services.
The responsibility for making client gRPC calls has been moved to the spiral/grpc-client package, which is included by default.
Generating client classes is no longer required, as spiral/grpc-client generates the necessary proxy classes at runtime.
That's why all the extra generators (BootloaderGenerator, ConfigGenerator, ClientGenerator) and client-related classes have been removed from this package.
To configure spiral/grpc-client, a client section has been added to the gRPC configuration:
return [
// File 'app/config/grpc.php'
// ... other options ...
'client' => new GrpcClientConfig(
interceptors: [
SetTimoutInterceptor::createConfig(6_000),
RetryInterceptor::createConfig(
maximumAttempts: 1,
),
ExecuteServiceInterceptors::class,
],
services: [
new \Spiral\Grpc\Client\Config\ServiceConfig(
connections: ConnectionConfig::createInsecure('localhost:9001'),
interfaces: [
\GRPC\Mailer\MailerServiceInterface::class,
\GRPC\Mailer\PingerServiceInterface::class,
],
),
],
)
];
Refer to the spiral/grpc-client documentation for more information.
Full integration with interceptors of Spiral v3.14. In interceptors, you can interact with the request context, modify the input, handle the output, and perform any actions just before calling the target method.
Added support for container scopes. Each worker will open the corresponding scopes immediately after initialization (dispatcher scope) and before running interceptors (context scope).
Dispatcher scopes are used to limit service bindings. Contextu scopes limits the context. For example, in the HTTP module, the context is ServerRequestInterface from PSR-7. Corresponding contexts have been added for the others as well.
HTTP:
http - dispatcher scopehttp.request - context scope\Psr\Http\Message\ServerRequestInterface - context classCentrifugo:
centrifugo - dispatcher scopecentrifugo.request - context scope\RoadRunner\Centrifugo\Request\RequestInterface - context classgRPC (server):
grpc - dispatcher scopegrpc.request - context scope\Spiral\RoadRunnerBridge\GRPC\UnaryCallInterface - context classQueue:
queue - dispatcher scopequeue.task - context scope\Spiral\Queue\TaskInterface - context classTCP:
tcp - dispatcher scopetcp.request - context scope\Spiral\RoadRunner\Tcp\RequestInterface - context classThe worker initialization time has been significantly optimized by using tokenizer listeners when searching for gRPC services.
The responsibility for making client gRPC calls has been moved to the spiral/grpc-client package, which is included by default.
Generating client classes is no longer required, as spiral/grpc-client generates the necessary proxy classes at runtime.
That's why all the extra generators (BootloaderGenerator, ConfigGenerator, ClientGenerator) and client-related classes have been removed from this package.
To configure spiral/grpc-client, a client section has been added to the gRPC configuration:
return [
// File 'app/config/grpc.php'
// ... other options ...
'client' => new GrpcClientConfig(
interceptors: [
SetTimoutInterceptor::createConfig(6_000),
RetryInterceptor::createConfig(
maximumAttempts: 1,
),
ExecuteServiceInterceptors::class,
],
services: [
new \Spiral\Grpc\Client\Config\ServiceConfig(
connections: ConnectionConfig::createInsecure('localhost:9001'),
interfaces: [
\GRPC\Mailer\MailerServiceInterface::class,
\GRPC\Mailer\PingerServiceInterface::class,
],
),
],
)
];
Refer to the spiral/grpc-client documentation for more information.
error to warning for pipeline declarations when a pipeline with the same name already exists by @butschster in https://github.com/spiral/roadrunner-bridge/pull/107proto_path params order in a protoc command when PHP classes are generated by @roxblnfk in https://github.com/spiral/roadrunner-bridge/pull/106Full Changelog: https://github.com/spiral/roadrunner-bridge/compare/v3.6.1...v3.6.2
Full Changelog: https://github.com/spiral/roadrunner-bridge/compare/v3.6.0...v3.6.1
Full Changelog: https://github.com/spiral/roadrunner-bridge/compare/v3.5.0...v3.6.0
Full Changelog: https://github.com/spiral/roadrunner-bridge/compare/3.4.0...v3.5.0
Full Changelog: https://github.com/spiral/roadrunner-bridge/compare/3.3.1...3.4.0
Full Changelog: https://github.com/spiral/roadrunner-bridge/compare/3.3.0...3.3.1
Full Changelog: https://github.com/spiral/roadrunner-bridge/compare/3.2.0...3.3.0
Full Changelog: https://github.com/spiral/roadrunner-bridge/compare/3.1.0...3.2.0
Full Changelog: https://github.com/spiral/roadrunner-bridge/compare/3.0.2...3.1.0
Full Changelog: https://github.com/spiral/roadrunner-bridge/compare/3.0.1...3.0.2
initServices method generation by @MeidoNoHitsuji in https://github.com/spiral/roadrunner-bridge/pull/83Full Changelog: https://github.com/spiral/roadrunner-bridge/compare/3.0.0...3.0.1
spiral/roadrunner-jobs package up to 4.0 versionspiral/serializer component to deserialize it.return [
'default' => env('QUEUE_CONNECTION', 'roadrunner'),
'connections' => [
'in-memory' => [
'driver' => 'roadrunner',
'pipeline' => 'memory', // <======= Pipeline that will be used in connection
],
],
'defaultSerializer' => 'closure',
'pipelines' => [ // <=============== Pipelines section
'memory' => [
'connector' => new MemoryCreateInfo('local'),
'consume' => true,
],
],
];
Adds earlier declaration of pipelines with consuming.
consume=true declaration, it will be declared automatically during application bootstrapping.rr:jobs:consume console command declares a pipeline if it wasn't declared and there is a declaration in config for it
Full Changelog: https://github.com/spiral/roadrunner-bridge/compare/2.6.0...3.0.0
Full Changelog: https://github.com/spiral/roadrunner-bridge/compare/2.5.1...2.6.0
Full Changelog: https://github.com/spiral/roadrunner-bridge/compare/2.5.0...2.5.1
Full Changelog: https://github.com/spiral/roadrunner-bridge/compare/2.4.0...2.5.0
Full Changelog: https://github.com/spiral/roadrunner-bridge/compare/2.3.2...2.4.0
Full Changelog: https://github.com/spiral/roadrunner-bridge/compare/2.3.1...2.3.2
Protoc plugin binary was not found... by @kastahov in https://github.com/spiral/roadrunner-bridge/pull/53Full Changelog: https://github.com/spiral/roadrunner-bridge/compare/2.3.0...2.3.1
Warning RoadRunner supports centrifuge since v2.12.0-beta.1 You can download it using
spiral/roadrunner-clipackage./vendor/bin/rr get -s RC
Spiral\RoadRunnerBridge\GRPC\ProtoRepository\ProtoFilesRepositoryInterface by @kastahov in https://github.com/spiral/roadrunner-bridge/pull/49generatedPath and servicesBasePath to GRPC config by @kastahov in https://github.com/spiral/roadrunner-bridge/pull/48Full Changelog: https://github.com/spiral/roadrunner-bridge/compare/2.2.0...2.3.0
How can I help you explore Laravel packages today?