RpcToolkit 1.1.4
See the version list below for details.
dotnet add package RpcToolkit --version 1.1.4
NuGet\Install-Package RpcToolkit -Version 1.1.4
<PackageReference Include="RpcToolkit" Version="1.1.4" />
<PackageVersion Include="RpcToolkit" Version="1.1.4" />
<PackageReference Include="RpcToolkit" />
paket add RpcToolkit --version 1.1.4
#r "nuget: RpcToolkit, 1.1.4"
#:package RpcToolkit@1.1.4
#addin nuget:?package=RpcToolkit&version=1.1.4
#tool nuget:?package=RpcToolkit&version=1.1.4
RPC .NET Toolkit
JSON-RPC 2.0 toolkit for .NET applications. It provides a server endpoint, typed C# client, batch requests, Safe Mode serialization, middleware, and method-level authorization.
Packages
After publication, install the core package from NuGet:
dotnet add package RpcToolkit
For ASP.NET Core hosting, install the adapter package:
dotnet add package RpcToolkit.AspNetCore
Target Frameworks
RpcToolkit targets:
netstandard2.0, usable from .NET Framework 4.8 and modern .NETnet6.0net8.0
RpcToolkit.AspNetCore targets ASP.NET Core on modern .NET.
Minimal Endpoint
using RpcToolkit;
var endpoint = new RpcEndpoint();
endpoint.AddMethod<AddParams, int>("calculator.add", (p, ctx) =>
{
return p!.A + p.B;
});
var json = @"{""jsonrpc"":""2.0"",""method"":""calculator.add"",""params"":{""a"":5,""b"":3},""id"":1}";
var response = await endpoint.HandleRequestAsync(json);
public sealed class AddParams
{
public int A { get; set; }
public int B { get; set; }
}
Minimal Client
using RpcToolkit;
using var client = new RpcClient("http://localhost:5000/rpc");
var result = await client.CallAsync<int>("calculator.add", new { a = 5, b = 3 });
Documentation
Start here:
- Getting Started: endpoint, methods, requests, errors.
- Clients: C# client, browser client expectations, auth headers.
- HTTP Hosting: ASP.NET Core and custom
HttpListenerhosts. - Authentication and Authorization: request context,
ClaimsPrincipal, scopes, roles, custom policies. - Safe Mode:
RpcSafeEndpoint,RpcSafeClient, serialization behavior. - Middleware, Batch, Logging: operational features.
Examples:
Core Concepts
- The HTTP host owns ports, paths, TLS,
/health, CORS, and route-level challenges. RpcEndpointandRpcSafeEndpointparse JSON-RPC and invoke registered methods.- Per-request data is passed with
HandleRequestAsync(json, context). - Method authorization belongs in RPC method configuration, because the method is known only after parsing and lookup.
Build
dotnet restore
dotnet build
dotnet test
License
MIT. See LICENSE.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.Bcl.AsyncInterfaces (>= 8.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.0)
- Newtonsoft.Json (>= 13.0.3)
- NJsonSchema (>= 11.0.2)
- System.Memory (>= 4.5.5)
- System.Threading.Tasks.Extensions (>= 4.5.4)
-
net6.0
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.0)
- NJsonSchema (>= 11.0.2)
-
net8.0
- Microsoft.Extensions.Logging.Abstractions (>= 8.0.0)
- NJsonSchema (>= 11.0.2)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on RpcToolkit:
| Package | Downloads |
|---|---|
|
RpcToolkit.AspNetCore
ASP.NET Core integration for RPC Toolkit JSON-RPC endpoints with middleware, dependency injection, endpoint routing, and embedded browser client assets. |
GitHub repositories
This package is not used by any popular GitHub repositories.