Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Rebus is a lean service bus implementation for .NET, similar in nature to NServiceBus and MassTransit, only leaner.
C# Other
Failed to load latest commit information.
Rebus.AmazonSQS.Tests made all transports allow passing in null, which means that the trans…
Rebus.AmazonSQS one-way msmq configuration extension
Rebus.Autofac.Tests bam!
Rebus.Autofac fixed nuspecs
Rebus.AzureServiceBus.Tests updated all Azure deps to newest
Rebus.AzureServiceBus forklift for ASB
Rebus.AzureStorageQueues.Tests updated all Azure deps to newest
Rebus.AzureStorageQueues updated all Azure deps to newest
Rebus.CastleWindsor.Tests bam!
Rebus.CastleWindsor fixed nuspecs
Rebus.Forklift.AzureServiceBus forklift for ASB
Rebus.Forklift.AzureStorageQueues updated newtonsoft dep
Rebus.Forklift.Common forklift for ASB
Rebus.Forklift.Msmq forklift for ASB
Rebus.Forklift.RabbitMq forklift for ASB
Rebus.Jil.Tests added test to see what Jil can do
Rebus.Jil fixed nuspecs
Rebus.Log4net corrected name of log4net configuration extension
Rebus.MongoDb.Tests added some more snapshotting
Rebus.MongoDb added configuration extensions
Rebus.NLog fixed nuspecs
Rebus.NewtonsoftJson updated newtonsoft dep to 7.0.1
Rebus.Ninject.Tests bam!
Rebus.Ninject fixed nuspecs
Rebus.PostgreSql.Tests updated newtonsoft dep to 7.0.1
Rebus.PostgreSql config ex...
Rebus.RabbitMq.Tests added test tag
Rebus.RabbitMq added injectionist descriptions
Rebus.RavenDb.Tests updated newtonsoft dep to 7.0.1
Rebus.RavenDb fixed nuspecs
Rebus.Serilog fixed nuspecs
Rebus.SimpleInjector.Tests updated simpleinjector dep
Rebus.SimpleInjector updated simpleinjector dep
Rebus.StructureMap.Tests almost done with structuremap integration
Rebus.StructureMap fixed nuspecs
Rebus.Tests made test more robust
Rebus.TransactionScope.Tests added transactionscope support
Rebus.TransactionScope fixed nuspecs
Rebus.Unity.Tests bam!
Rebus.Unity fixed nuspecs
Rebus.XmlConfig.Tests renamed method
Rebus.XmlConfig fixed nuspecs
Rebus even more comments
artwork changed logo
old updated simpleinjector dep
packages updated newtonsoft dep
scripts damn!
tools maybe it'll help updating nuget
.gitignore bam! made routing function async docs updated license updated license info in readme
Rebus2.sln azure storage queues forklift

Rebus 2

"As friendly as machinely possible."

NOTE: This is Rebus2 - if you've used Rebus before up until version 0.84.0, you will experience a minor bump in the road when you update to 0.90.0, which functions as the beta versions until Rebus 2.0.0 is ready!

Moreover - since the wiki actually contains quite a bit of content - please be patient until the content has been updated to reflect Rebus 2 :)

Bedford OB

install from nugetdownloads


Rebus is a lean service bus implementation for .NET, similar in nature to NServiceBus and MassTransit, only leaner.

These are the goals - Rebus should have:

  • a simple and intuitive configuration story
  • a few well-selected options
  • no doodleware
  • dependency only on .NET 4.5
  • integration with external dependencies via small and dedicated projects
  • the best error messages
  • a frictionless getting-up-and-running-experience

and in doing this, Rebus should align very well with the NServiceBus way of doing things, which I like, thus allowing users (myself included) to easily migrate to NServiceBus at some point in a project's lifetime if Rebus for some reason falls short (which I don't think it will).

Oh, and Rebus is free as in beer and speech.


Because I wanted to build the .NET service bus that I would have the patience to work with every day, probably for several years to come. And I can be very impatient with my tools, so the most solemn goal of Rebus is that it should stay out of my way - and I think it does that just right!

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

One day, maybe I'll tweet something as well... @mookid8000


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

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

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

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

// let the container dispose the bus when your application exits

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.


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 for more info.

Something went wrong with that request. Please try again.