🚌 Rebus is a lean service bus implementation for .NET, similar in nature to NServiceBus and MassTransit, only leaner.
C#
Latest commit 89e4ac1 Jul 18, 2016 @mookid8000 mookid8000 cleaned up
Failed to load latest commit information.
.github Update PULL_REQUEST_TEMPLATE.md Feb 26, 2016
Rebus.AmazonSQS.Tests updated amazon sdk dep May 21, 2016
Rebus.AmazonSQS merged cancellation support Jun 3, 2016
Rebus.Async.Tests Clean-up solution + Use feature "String Interpolation" May 17, 2016
Rebus.Async updated amazon sdk dep May 21, 2016
Rebus.Autofac.Tests downgraded NUnit to 2.6.4 because 3 has bugs Jan 21, 2016
Rebus.Autofac updated nuspecs Feb 10, 2016
Rebus.AzureServiceBus.Tests fix how transaction context is picked up by restricting to this bus' … Jul 18, 2016
Rebus.AzureServiceBus accept almost infinite deviation when working with Azure Service Bus Jun 17, 2016
Rebus.AzureStorage.Tests updated newtonsoft to 9.0.1 Jun 29, 2016
Rebus.AzureStorage fix subtle saga data type mismatch bug Jul 15, 2016
Rebus.CastleWindsor.Tests cleaned up windsor code Jan 23, 2016
Rebus.CastleWindsor cleaned up after PR running a tool May 18, 2016
Rebus.DryIoc.Tests updated container dependencies May 24, 2016
Rebus.DryIoc updated container dependencies May 24, 2016
Rebus.Forklift.AzureServiceBus found a way to cancel pending receive operation with Azure Service Bus May 18, 2016
Rebus.Forklift.AzureStorageQueues updated newtonsoft to 9.0.1 Jun 29, 2016
Rebus.Forklift.Common Clean-up + use the c#6 function "nameof()". So if you change the vari… May 18, 2016
Rebus.Forklift.Msmq Remove some unused "Using" statements Nov 9, 2015
Rebus.Forklift.RabbitMq Remove some unused "Using" statements Nov 9, 2015
Rebus.Jil.Tests disabled JIL test case May 21, 2016
Rebus.Jil add jil customization Jul 14, 2016
Rebus.LightInject.Tests updated lightinject to 4.0.9 May 24, 2016
Rebus.LightInject updated lightinject to 4.0.9 May 24, 2016
Rebus.Log4net updated log libs May 24, 2016
Rebus.MongoDb.Tests fix subtle saga data type mismatch bug Jul 15, 2016
Rebus.MongoDb fixed mongodb serialization error May 19, 2016
Rebus.MsgPack.Tests added msgpack serializer Jun 29, 2016
Rebus.MsgPack comments! Jun 29, 2016
Rebus.NLog.Tests updated log libs May 24, 2016
Rebus.NLog updated log libs May 24, 2016
Rebus.NewtonsoftJson add jil customization Jul 14, 2016
Rebus.Ninject.Tests ability to configure centralized in-mem subscription storage May 24, 2016
Rebus.Ninject ability to configure centralized in-mem subscription storage May 24, 2016
Rebus.Owin.Tests Clean-up solution + Use feature "String Interpolation" May 17, 2016
Rebus.Owin Clean-up solution + Use feature "String Interpolation" May 17, 2016
Rebus.PostgreSql.Tests fix subtle saga data type mismatch bug Jul 15, 2016
Rebus.PostgreSql fix subtle saga data type mismatch bug Jul 15, 2016
Rebus.Protobuf.Tests added serialization speed test Jun 22, 2016
Rebus.Protobuf made DataBusAttachment serializable across the board Jun 21, 2016
Rebus.RabbitMq.Tests additional defensive RabbitMQ measures Jun 16, 2016
Rebus.RabbitMq updated changelog Jul 14, 2016
Rebus.RavenDb.Tests fix subtle saga data type mismatch bug Jul 15, 2016
Rebus.RavenDb fix subtle saga data type mismatch bug Jul 15, 2016
Rebus.Recipes.Test identity tests Jun 24, 2016
Rebus.Recipes XML comments Jun 28, 2016
Rebus.Serilog updated log libs May 24, 2016
Rebus.SimpleInjector.Tests downgraded NUnit to 2.6.4 because 3 has bugs Jan 21, 2016
Rebus.SimpleInjector updated nuspecs Feb 10, 2016
Rebus.StructureMap.Tests updated StructureMap to 4.2.0.402 May 24, 2016
Rebus.StructureMap updated changelog and added some comments Jun 24, 2016
Rebus.Tests slightly faster pipeline invoker Jul 18, 2016
Rebus.TransactionScopes.Tests cleaned up in some tests Mar 31, 2016
Rebus.TransactionScopes updated target fx for transaction scope support May 21, 2016
Rebus.UnitOfWork.Tests Clean-up solution + Use feature "String Interpolation" May 17, 2016
Rebus.UnitOfWork Clean-up solution + Use feature "String Interpolation" May 17, 2016
Rebus.Unity.Tests tried to update Unity May 24, 2016
Rebus.Unity tried to update Unity May 24, 2016
Rebus.Wire.Tests added serialization speed test Jun 22, 2016
Rebus.Wire added Wire serializer proper Mar 1, 2016
Rebus.XmlConfig.Tests cleaned up in some tests Mar 31, 2016
Rebus.XmlConfig updated nuspecs Feb 10, 2016
Rebus cleaned up Jul 18, 2016
artwork added fm logo files Feb 4, 2016
packages updated newtonsoft to 9.0.1 Jun 29, 2016
scripts updated changelog + fixed build script to work with C#6 Nov 24, 2015
tools maybe it'll help updating nuget Aug 2, 2015
.gitignore explicitly un-ignore packages folder May 18, 2016
CHANGELOG.md fix how transaction context is picked up by restricting to this bus' … Jul 18, 2016
CONTRIBUTING.md Update CONTRIBUTING.md Oct 18, 2015
LICENSE.md fixed license Feb 4, 2016
README.md Update README.md Mar 17, 2016
Rebus2.sln remove Rune's reproduction project :) Jul 15, 2016

README.md

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 nuget

What?

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.

Why?

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

How?

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.

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.