RabbitRpc.Server
3.0.0
See the version list below for details.
dotnet add package RabbitRpc.Server --version 3.0.0
NuGet\Install-Package RabbitRpc.Server -Version 3.0.0
<PackageReference Include="RabbitRpc.Server" Version="3.0.0" />
<PackageVersion Include="RabbitRpc.Server" Version="3.0.0" />
<PackageReference Include="RabbitRpc.Server" />
paket add RabbitRpc.Server --version 3.0.0
#r "nuget: RabbitRpc.Server, 3.0.0"
#:package RabbitRpc.Server@3.0.0
#addin nuget:?package=RabbitRpc.Server&version=3.0.0
#tool nuget:?package=RabbitRpc.Server&version=3.0.0
RabbitRpc.Server
The server-side library for RabbitMQ RPC in .NET. Registers RPC method handlers via DI and starts a hosted service that listens to a RabbitMQ queue.
Installation
Install the package from NuGet:
dotnet add package RabbitRpc.Server
Configuration
Add the RabbitMqRpc section to your appsettings.json:
{
"RabbitMqRpc": {
"HostName": "localhost",
"Port": 5672,
"VirtualHost": "/",
"UserName": "guest",
"Password": "guest",
"ClientProvidedName": "rabbit-rpc-server",
"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);
}
Implement it on the server side:
public class MathService : IMathService
{
public Task<int> AddAsync(int a, int b, CancellationToken ct = default)
=> Task.FromResult(a + b);
}
Register the server and handlers in Program.cs:
using AsbtCore.Broker.Server;
var builder = Host.CreateApplicationBuilder(args);
builder.Services
.AddRabbitRpcServerPackage(builder.Configuration)
.Register<IMathService, MathService>();
await builder.Build().RunAsync();
The hosted service starts automatically and begins accepting RPC requests.
Building a NuGet Package
Prerequisites
- .NET SDK installed
- Package metadata configured in the
.csprojfile:
<PropertyGroup>
<PackageId>RabbitRpc.Server</PackageId>
<Version>1.0.0</Version>
<Authors>Your Name</Authors>
<Description>Server-side RabbitMQ RPC library for .NET</Description>
<PackageTags>rabbitmq;rpc;server</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.Server.*.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.Server.*.nupkg --source <FEED_URL>
See Also
- RabbitRpc.Client — client-side library with typed proxies.
| 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".