RFRabbitMQRPCApp 1.3.5

dotnet add package RFRabbitMQRPCApp --version 1.3.5
                    
NuGet\Install-Package RFRabbitMQRPCApp -Version 1.3.5
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="RFRabbitMQRPCApp" Version="1.3.5" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="RFRabbitMQRPCApp" Version="1.3.5" />
                    
Directory.Packages.props
<PackageReference Include="RFRabbitMQRPCApp" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add RFRabbitMQRPCApp --version 1.3.5
                    
#r "nuget: RFRabbitMQRPCApp, 1.3.5"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package RFRabbitMQRPCApp@1.3.5
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=RFRabbitMQRPCApp&version=1.3.5
                    
Install as a Cake Addin
#tool nuget:?package=RFRabbitMQRPCApp&version=1.3.5
                    
Install as a Cake Tool

RFRabbitMQRPCApp

🇺🇸 English | 🇪🇸 Versión en Español Video tutorial

RFRabbitMQRPCApp is a .NET library for hosting and managing RPC services using RabbitMQ as the messaging middleware. It provides an abstraction that simplifies building strongly-typed RPC microservices, handling queue binding, dependency injection, logging, and message routing automatically.


🚀 Features

  • Host RPC services with simple attribute-based controllers.
  • Automatic RabbitMQ connection + channel management.
  • Queue routing using [Queue("name")].
  • Support for dependency injection and logging (ILogger).
  • Built-in request/response serialization.
  • Works seamlessly with:
    • RFRabbitMQ
    • RFRabbitMQRPCClient

📦 Installation

NuGet

Install-Package RFRabbitMQRPCApp

.NET CLI

dotnet add package RFRabbitMQRPCApp

🔧 Configuration

Example appsettings.json:

{
  "RabbitMQ": {
    "HostName": "localhost",
    "UserName": "guest",
    "Password": "guest",
    "ServiceQueuePrefix": "rpc-app-"
  }
}

🖥️ Example — Creating an RPC Microservice

Below is a complete example based on real files.


1️⃣ Define a service

internal interface IDemoService
{
    object GetDemoData();
}
public class DemoService : IDemoService
{
    public object GetDemoData()
    {
        return new
        {
            Property = "Property value",
            OtherProperty = "Other property value "
        };
    }
}

2️⃣ Create an RPC Controller

[RpcController]
internal class DemoController(
    ILogger<DemoController> logger,
    IDemoService demoService
) : Controller
{
    [Queue("my-first-queue")]
    public async Task<Result> MyFirstQueue()
    {
        logger.LogInformation("Received request my-first-queue");

        return Ok(demoService.GetDemoData());
    }
}

3️⃣ Host the RPC Application

var builder = RabbitMQRpcApp.CreateBuilder();

builder.Services.AddScoped<IDemoService, DemoService>();

var app = builder.Build();

app.Run(app => app.Logger.LogInformation("Demo microservice initiated"));

🧩 Use Cases

  • Microservices requiring synchronous RPC responses.
  • Real-time validations.
  • Pricing/Calculation engines.
  • Authentication/authorization RPC providers.
  • Request/response messaging without REST.

🔍 Versioning

Current version: 1.3.3


📚 Dependencies

This package depends on:

  • RabbitMQ.Client 7.2.0
  • RFRabbitMQRPCClient 1.3.3
  • Microsoft.Extensions.Configuration.* 8.0.0
  • Microsoft.Extensions.DependencyInjection 8.0.0
  • Microsoft.Extensions.Logging 8.0.0

📄 License

MIT License.


🌐 Repository

https://github.com/fabianlucena/rfn-rabbitmq-rpc-app

Product Compatible and additional computed target framework versions.
.NET 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 is compatible.  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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.3.5 104 8/10/2026
1.3.4 95 8/10/2026
1.3.3 474 12/9/2025
1.3.1 212 12/4/2025