Skip to content

Nimbus is a .NET client library to provide an easy abstraction over common messaging frameworks.

License

Notifications You must be signed in to change notification settings

NimbusAPI/Nimbus

Repository files navigation

Nimbus

Nimbus is a .NET messaging framework that provides a clean abstraction over multiple messaging transports, supporting commands, events (pub/sub), and request/response patterns.

Documentation: https://nimbusapi.com

Supported Transports

Transport Package
Azure Service Bus Nimbus.Transports.AzureServiceBus
Redis Nimbus.Transports.Redis
PostgreSQL Nimbus.Transports.Postgres
SQL Server Nimbus.Transports.SqlServer
AMQP Nimbus.Transports.AMQP
In-Process (testing) Nimbus.Transports.InProcess

Message Patterns

  • Commands — fire-and-forget, single handler
  • Events — pub/sub with competing or multicast consumers
  • Requests — request/response, single or multicast

Quick Start

var bus = new BusBuilder()
    .Configure()
    .WithTransport(new RedisTransportConfiguration().WithConnectionString("localhost"))
    .WithNames("MyApp", Environment.MachineName)
    .WithTypesFrom(typeProvider)
    .WithAutofacDefaults(componentContext)
    .WithJsonSerializer()
    .Build();

await bus.Start();

Developing Nimbus

git clone <this repository>
docker-compose up -d --build
dotnet build

Development Infrastructure

docker-compose up -d --build starts:

Service URL / Port
Seq log server http://localhost:5341
Redis localhost:6379
Apache ActiveMQ Artemis (AMQP) localhost:5672, console at http://localhost:8161
SQL Server localhost:1433
PostgreSQL localhost:5432

SQL Server uses a custom Docker image (in docker/sqlserver) — the --build flag ensures it is built before starting.

Integration tests use appsettings.json in the pipeline and appsettings.Development.json locally (not committed) to point at localhost ports.

Sample Application

The Cafe sample app demonstrates Nimbus messaging patterns through a simple café scenario (cashier, barista, waiter). Run it with:

dotnet run --project src/Cafe.Cashier
dotnet run --project src/Cafe.Barista
dotnet run --project src/Cafe.Waiter

See CONTRIBUTING.md for contribution guidelines.

About

Nimbus is a .NET client library to provide an easy abstraction over common messaging frameworks.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages