🚌 Rebus is a lean service bus implementation for .NET, similar in nature to NServiceBus and MassTransit, only leaner.
C#
Permalink
Failed to load latest commit information.
.github Update PULL_REQUEST_TEMPLATE.md Feb 26, 2016
Rebus.AmazonSQS.Tests fix Amazon SQS transport bug Aug 26, 2016
Rebus.AmazonSQS fix Amazon SQS transport bug Aug 26, 2016
Rebus.Async.Tests CLS compliance Aug 15, 2016
Rebus.Async make most integration projects treat warnings as errors and correct t… Aug 15, 2016
Rebus.Autofac.Tests update autofac dep to 4.0.1 Aug 25, 2016
Rebus.Autofac update autofac dep to 4.0.1 Aug 25, 2016
Rebus.AzureServiceBus.Tests cleaned up Aug 24, 2016
Rebus.AzureServiceBus invariants Aug 24, 2016
Rebus.AzureStorage.Tests Clean up code... Aug 19, 2016
Rebus.AzureStorage remove default(CancellationToken) Aug 23, 2016
Rebus.CastleWindsor.Tests CLS compliance Aug 15, 2016
Rebus.CastleWindsor make most integration projects treat warnings as errors and correct t… Aug 15, 2016
Rebus.DryIoc.Tests CLS compliance Aug 15, 2016
Rebus.DryIoc make most integration projects treat warnings as errors and correct t… Aug 15, 2016
Rebus.Forklift.AzureServiceBus Clean up code... Aug 19, 2016
Rebus.Forklift.AzureStorageQueues make most integration projects treat warnings as errors and correct t… Aug 15, 2016
Rebus.Forklift.Common remove default(CancellationToken) Aug 23, 2016
Rebus.Forklift.Msmq make most integration projects treat warnings as errors and correct t… Aug 15, 2016
Rebus.Forklift.RabbitMq make most integration projects treat warnings as errors and correct t… Aug 15, 2016
Rebus.Jil.Tests CLS compliance Aug 15, 2016
Rebus.Jil make most integration projects treat warnings as errors and correct t… Aug 15, 2016
Rebus.LightInject.Tests CLS compliance Aug 15, 2016
Rebus.LightInject make most integration projects treat warnings as errors and correct t… Aug 15, 2016
Rebus.Log4net make most integration projects treat warnings as errors and correct t… Aug 15, 2016
Rebus.MongoDb.Tests remove irrelevant test Aug 20, 2016
Rebus.MongoDb extra newline Aug 23, 2016
Rebus.MsgPack.Tests mark rest of main DLLs CLS compliant too Aug 15, 2016
Rebus.MsgPack make most integration projects treat warnings as errors and correct t… Aug 15, 2016
Rebus.NLog.Tests consolidate NLog dep Aug 25, 2016
Rebus.NLog update changelog + fix nuspec Aug 20, 2016
Rebus.NewtonsoftJson make most integration projects treat warnings as errors and correct t… Aug 15, 2016
Rebus.Ninject.Tests CLS compliance Aug 15, 2016
Rebus.Ninject make most integration projects treat warnings as errors and correct t… Aug 15, 2016
Rebus.Owin.Tests CLS compliance Aug 15, 2016
Rebus.Owin make most integration projects treat warnings as errors and correct t… Aug 15, 2016
Rebus.PostgreSql.Tests CLS compliance Aug 15, 2016
Rebus.PostgreSql fix possible race conition in MongoDB timeout manager Aug 23, 2016
Rebus.Protobuf.Tests CLS compliance Aug 15, 2016
Rebus.Protobuf make most integration projects treat warnings as errors and correct t… Aug 15, 2016
Rebus.RabbitMq.Tests CLS compliance Aug 15, 2016
Rebus.RabbitMq remove default(CancellationToken) Aug 23, 2016
Rebus.RavenDb.Tests Clean up code... Aug 19, 2016
Rebus.RavenDb fix possible race conition in MongoDB timeout manager Aug 23, 2016
Rebus.Recipes.Test mark rest of main DLLs CLS compliant too Aug 15, 2016
Rebus.Recipes Clean up code... Aug 19, 2016
Rebus.Serilog make most integration projects treat warnings as errors and correct t… Aug 15, 2016
Rebus.ServiceProvider.Tests clean up couple of tests Aug 26, 2016
Rebus.ServiceProvider Added AutoRegisterHandlersFromThisAssembly and AutoRegisterHandlersFr… Aug 25, 2016
Rebus.SimpleInjector.Tests Update SimpleInjector 3.1.0 to 3.2.0 Aug 21, 2016
Rebus.SimpleInjector fix simpleinjector nuspec and change changelog Aug 22, 2016
Rebus.StructureMap.Tests CLS compliance Aug 15, 2016
Rebus.StructureMap make most integration projects treat warnings as errors and correct t… Aug 15, 2016
Rebus.Tests fix Amazon SQS transport bug Aug 26, 2016
Rebus.TransactionScopes.Tests CLS compliance Aug 15, 2016
Rebus.TransactionScopes make most integration projects treat warnings as errors and correct t… Aug 15, 2016
Rebus.UnitOfWork.Tests CLS compliance Aug 15, 2016
Rebus.UnitOfWork make most integration projects treat warnings as errors and correct t… Aug 15, 2016
Rebus.Unity.Tests CLS compliance Aug 15, 2016
Rebus.Unity make most integration projects treat warnings as errors and correct t… Aug 15, 2016
Rebus.Wire.Tests CLS compliance Aug 15, 2016
Rebus.Wire update Wire dep to 0.8.0 Aug 23, 2016
Rebus.XmlConfig.Tests CLS compliance Aug 15, 2016
Rebus.XmlConfig make most integration projects treat warnings as errors and correct t… Aug 15, 2016
Rebus fix Amazon SQS transport bug Aug 26, 2016
artwork added fm logo files Feb 4, 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 ms guideline Aug 25, 2016
CHANGELOG.md fix Amazon SQS transport bug Aug 26, 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 silly .nuget leftovers Aug 25, 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.