Transport-Agnostic .NET Messaging Framework
Write messaging code once, run it on NATS.io, Azure Service Bus, Redis, AMQP, SQL Server, PostgreSQL, or any other transport. Nimbus provides a clean abstraction over messaging infrastructure.
Quick Start
// Define a command
public class PlaceOrderCommand : IBusCommand
{
public string OrderId { get; set; }
public decimal Amount { get; set; }
}
// Create a handler
public class PlaceOrderHandler : IHandleCommand<PlaceOrderCommand>
{
public async Task Handle(PlaceOrderCommand command)
{
// Process the order
Console.WriteLine($"Processing order {command.OrderId}");
}
}
// Configure the bus
var bus = new BusBuilder()
.Configure()
.WithTransport(new RedisTransportConfiguration()
.WithConnectionString("localhost:6379"))
.WithNames("MyApp", Environment.MachineName)
.WithTypesFrom(typeProvider)
.WithAutofacDefaults(componentContext)
.Build();
// Send a command
await bus.Send(new PlaceOrderCommand
{
OrderId = "12345",
Amount = 99.99m
}); Features
Everything you need to build reliable, scalable messaging applications
Transport Abstraction
Write once, run anywhere. Switch between Azure Service Bus, Redis, AMQP, or InProcess without changing your application code.
Message Patterns
Built-in support for Commands, Events (competing & multicast), Requests, and Multicast Requests.
DI Integration
Seamless integration with Autofac and other dependency injection containers. Handlers are resolved per-message.
Routing & Dispatching
Flexible routing strategies and automatic message dispatching to the correct handlers.
Interceptors
Add cross-cutting concerns — logging, metrics, validation — using inbound and outbound interceptors.
Serialization
DataContract or JSON serialization out of the box, with a simple interface for custom serializers.
Ready to get started?
Install Nimbus from NuGet and start building transport-agnostic messaging applications today.
Read the Documentation →