A Laravel package for implementing the Remote Procedure Call (RPC) protocol

0.1.0 2025-08-15 03:06 UTC

This package is auto-updated.

Last update: 2025-08-15 03:08:29 UTC


README

Latest Version on Packagist Total Downloads Code Coverage

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.