Rebus 8.9.2 (original) (raw)

alternate text is missing from this package README image

Latest stable: NuGet stable

Current prerelease: NuGet pre

Tests: Build status

This repository contains Rebus "core". You may also be interested in one of the many integration libraries.

For information about the commercial add-on (support, tooling, etc.) to Rebus, please visit Rebus FM's page about Rebus Pro.

What?

Rebus is a lean service bus implementation for .NET. It is what ThoughtWorks in 2010 called a"message bus without smarts" - a library that works well as the "dumb pipes" when you need asynchronous communication in your microservices that follow the "smart endpoints, dumb pipes"principle.

Rebus aims to have

and in doing this, Rebus should try to align itself with common, proven asynchronous messaging patterns.

Oh, and Rebus is FREE as in beer 🍺 and speech 💬, and it will stay that way forever.

More information

If you want to read more, check out the official Rebus documentation wiki or check out my blog.

You can also follow me on Twitter: @mookid8000

Getting started

Rebus is a simple .NET library, and everything revolves around the RebusBus class. One way to get Rebus up and running, is to manually go

var bus = new RebusBus(...);
bus.Start(1); //< 1 worker thread

// use the bus for the duration of the application lifetime

// remember to dispose the bus when your application exits
bus.Dispose();

where ... is a bunch of dependencies that vary depending on how you want to send/receive messages etc. Another way is to use the configuration API, in which case you would go

var someContainerAdapter = new BuiltinHandlerActivator();

for the built-in container adapter, or

var someContainerAdapter = new AdapterForMyFavoriteIocContainer(myFavoriteIocContainer);

to integrate with your favorite IoC container, and then

Configure.With(someContainerAdapter)
    .Logging(l => l.Serilog())
    .Transport(t => t.UseMsmq("myInputQueue"))
    .Routing(r => r.TypeBased().MapAssemblyOf<SomeMessageType>("anotherInputQueue"))
    .Start();

// have IBus injected in application services for the duration of the application lifetime    

// let the container dispose the bus when your application exits
myFavoriteIocContainer.Dispose();

which will stuff the resulting IBus in the container as a singleton and use the container to look up message handlers. Check out the Configuration section on the official Rebus documentation wiki for more information on how to do this.

If you want to be more specific about what types you map in an assembly, such as if the assembly is shared with other code you can map all the types under a specific namespace like this:

Configure.With(someContainerAdapter)
    .(...)
    .Routing(r => r.TypeBased().MapAssemblyNamespaceOf<SomeMessageType>("namespaceInputQueue"))
    .(...);

// have IBus injected in application services for the duration of the application lifetime    

// let the container dispose the bus when your application exits
myFavoriteIocContainer.Dispose();

License

Rebus is licensed under The MIT License (MIT). Basically, this license grants you the right to use Rebus in any way you see fit. See LICENSE.md for more info.

The purpose of the license is to make it easy for everyone to use Rebus and its accompanying integration libraries. If that is not the case, please get in touch with hello@rebus.fmand then we will work something out.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. 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.
.NET Core netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed.
.NET Standard netstandard2.0 is compatible. netstandard2.1 was computed.
.NET Framework net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed.
MonoAndroid monoandroid was computed.
MonoMac monomac was computed.
MonoTouch monotouch was computed.
Tizen tizen40 was computed. tizen60 was computed.
Xamarin.iOS xamarinios was computed.
Xamarin.Mac xamarinmac was computed.
Xamarin.TVOS xamarintvos was computed.
Xamarin.WatchOS xamarinwatchos was computed.

NuGet packages (159)

Showing the top 5 NuGet packages that depend on Rebus:

Package Downloads
Rebus.RabbitMq Provides a RabbitMQ transport for Rebus 16.2M
Rebus.ServiceProvider Provides a service provider-based container adapter for Rebus (i.e. integration with Microsoft.Extensions.DependencyInjection) as well as integration with the generic host 15.5M
Rebus.Serilog Serilog-based logger integration for Rebus 14.0M
Rebus.Autofac Provides an Autofac container adapter for Rebus 12.3M
Rebus.SqlServer Microsoft SQL Server-based persistence for Rebus 10.5M

GitHub repositories (12)

Showing the top 12 popular GitHub repositories that depend on Rebus:

Repository Stars
abpframework/abp Open-source web application framework for ASP.NET Core! Offers an opinionated architecture to build enterprise software solutions with best practices on top of the .NET. Provides the fundamental infrastructure, cross-cutting-concern implementations, startup templates, application modules, UI themes, tooling and documentation. 14.3K
geffzhang/NanoFabric 基于Consul + .NET Core + Polly + Ocelot + Exceptionless + IdentityServer等开源项目的微服务开发框架 1.5K
CodeMazeBlog/CodeMazeGuides The main repository for all the Code Maze guides 979
revoframework/Revo Event Sourcing, CQRS and DDD framework for C#/.NET Core. 714
NexusForever/NexusForever An emulator for the defunct MMORPG WildStar which supports build 16042 (Final Patch) 653
DataDog/dd-trace-dotnet .NET Client Library for Datadog APM 566
mastreeno/Merp An event based Micro ERP 501
loyldg/mytelegram Self-hosted Telegram server-side API implemented in C# 275
opengram-server/opengram 196
personball/abplus Abp Plus, Extension For https://github.com/aspnetboilerplate/aspnetboilerplate 172
stidsborg/Cleipnir.NET Surviving crashes in plain C#-code 141
rebus-org/RebusSamples Small sample projects 126

Include prerelease

Include vulnerable

Include deprecated

Version Downloads Last Updated
8.9.2 154,322 4/17/2026
8.9.0 2,305,223 10/19/2025
8.9.0-b03 342 10/6/2025
8.9.0-b02 4,801 10/6/2025
8.9.0-b01 247 10/6/2025
8.8.0 2,894,712 2/28/2025
8.7.1 3,596,285 11/27/2024
8.7.0 137,230 11/15/2024
8.6.1 444,475 10/13/2024
8.6.0 186,134 9/19/2024
8.5.0 38,232 9/16/2024
8.4.4 347,951 8/30/2024
8.4.3 415,592 6/12/2024
8.4.2 5,146,781 4/10/2024
8.4.1 77,675 4/4/2024
8.4.0 41,979 4/4/2024
8.3.0 4,642 4/4/2024
8.2.4 189,417 3/21/2024
8.2.2 5,125,120 1/22/2024