projectsaturnstudios / json-rpc
A Laravel package for implementing the Remote Procedure Call (RPC) protocol
0.1.0
2025-08-15 03:06 UTC
Requires
- php: ^8.2
- ext-json: *
- lorisleiva/laravel-actions: ^2.6
- projectsaturnstudios/laravel-design-patterns: ^0.1.0
- spatie/laravel-data: ^4.11
Requires (Dev)
- mockery/mockery: ^1.6
- orchestra/testbench: ^9.14
- pestphp/pest: ^3.8
- pestphp/pest-plugin-laravel: ^3.0
README
Introduction
This package is designed to implement the JSON-RPC 2.0 Server protocol by registering Procedure Calls like Laravel Controller Routes.
Installation
To get started, install Laravel MCP via the Composer package manager:
composer require projectsaturnstudios/json-rpc
Quickstart
use ProjectSaturnStudios\RpcServer\Support\Facades\RPC; use ProjectSaturnStudios\RpcServer\DTO\IO\RpcRequest; $request = new RpcRequest($id, $method, $params) $results = RPC::dispatch($request);
Register Procedures
Next, register your procedures in routes/web.php
:
use ProjectSaturnStudios\RpcServer\Support\Facades\RPC; RPC::procedure('some_method', SomeProcedureClass::class); RPC::procedure('some_method', SomeProcedureClass::class."@index"); RPC::prefix('notifications')->group(function() { RPC::procedure('some_method', SomeProcedureClass::class); //registers as notifications/some_method });
All Procedures can accept middleware
use ProjectSaturnStudios\RpcServer\Support\Facades\RPC; RPC::procedure('some_method', SomeProcedureClass::class)->middleware([SomeMiddleware::class]); RPC::procedure('some_method', SomeProcedureClass::class."@index")->middleware([SomeMiddleware::class]); RPC::prefix('notifications')->group(function() { RPC::procedure('some_method', SomeProcedureClass::class); //registers as notifications/some_method })->middleware([SomeMiddleware::class]);
Commands
# View all registered procedure calls php artisan prodecure:list # Generates a new procedure class in App\Rpc\Procedures php artisan make:procedure SomeProcedure
Testing
# Run tests composer test # Run tests with coverage composer test-coverage
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
The MIT License (MIT). Please see License File for more information.
About Project Saturn Studios
This package is developed and maintained with ADHD by Project Saturn Studios.