RabbitRpc.Client
3.0.0
See the version list below for details.
dotnet add package RabbitRpc.Client --version 3.0.0
NuGet\Install-Package RabbitRpc.Client -Version 3.0.0
<PackageReference Include="RabbitRpc.Client" Version="3.0.0" />
<PackageVersion Include="RabbitRpc.Client" Version="3.0.0" />
<PackageReference Include="RabbitRpc.Client" />
paket add RabbitRpc.Client --version 3.0.0
#r "nuget: RabbitRpc.Client, 3.0.0"
#:package RabbitRpc.Client@3.0.0
#addin nuget:?package=RabbitRpc.Client&version=3.0.0
#tool nuget:?package=RabbitRpc.Client&version=3.0.0
RabbitRpc.Client
The client-side library for RabbitMQ RPC in .NET. Provides typed proxies: inject a contract interface and call its methods like any regular service — the request is sent to RabbitMQ and the response is returned from the server.
Installation
Install the package from NuGet:
dotnet add package RabbitRpc.Client
Configuration
Add the RabbitMqRpc section to your appsettings.json:
{
"RabbitMqRpc": {
"HostName": "localhost",
"Port": 5672,
"VirtualHost": "/",
"UserName": "guest",
"Password": "guest",
"ClientProvidedName": "rabbit-rpc-client",
"PrefetchCount": 1
}
}
Usage
Define a contract interface (shared between client and server):
public interface IMathService
{
Task<int> AddAsync(int a, int b, CancellationToken ct = default);
}
Register the client and proxy in Program.cs:
using AsbtCore.Broker.Client;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddRabbitRpcClientPackage(builder.Configuration);
builder.Services.AddRabbitRpcProxy<IMathService>(TimeSpan.FromSeconds(30));
Inject and use the proxy like any other DI service:
public class CalculatorController : ControllerBase
{
private readonly IMathService _math;
public CalculatorController(IMathService math) => _math = math;
[HttpGet("add")]
public Task<int> Add(int a, int b, CancellationToken ct)
=> _math.AddAsync(a, b, ct);
}
The timeout parameter in AddRabbitRpcProxy<T> sets the response wait timeout (defaults to the value from transport settings).
Building a NuGet Package
Prerequisites
- .NET SDK installed
- Package metadata configured in the
.csprojfile:
<PropertyGroup>
<PackageId>RabbitRpc.Client</PackageId>
<Version>1.0.0</Version>
<Authors>Your Name</Authors>
<Description>Client-side RabbitMQ RPC library for .NET</Description>
<PackageTags>rabbitmq;rpc;client</PackageTags>
<RepositoryUrl>https://github.com/Sardor557/RabbitMq.RPC</RepositoryUrl>
</PropertyGroup>
Pack
Build and create the .nupkg file:
dotnet pack -c Release
The output package will be placed in bin/Release/.
Publish to NuGet.org
dotnet nuget push bin/Release/RabbitRpc.Client.*.nupkg --api-key <YOUR_API_KEY> --source https://api.nuget.org/v3/index.json
Replace <YOUR_API_KEY> with your API key from nuget.org.
Publish to a local or private feed
dotnet nuget push bin/Release/RabbitRpc.Client.*.nupkg --source <FEED_URL>
See Also
- RabbitRpc.Server — server-side library for hosting RPC handlers.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
-
net10.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.0)
- Microsoft.Extensions.Options.DataAnnotations (>= 10.0.0)
- RabbitMQ.Client (>= 7.1.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
v3.0.0 — Reliability release. Wire-format breaking change (stable type identity);
reply queue resilience on reconnect; publisher confirms; per-route DLQ.
v3.x is not interoperable with v2.x. See README "Migration v2 → v3".