vantheshark / Burrow.NET

Burrow.NET is a simple library created based on some EasyNetQ ideas, it's a thin wrapper of RabbitMQ.Client for .NET. Basically, if you just need to put your message or subscribe messages from RabbitMQ server, you found the right place. With Burrow.NET, you can easily customize almost everything start with exchange and queue name, changing the way to serialize your object, inject custom error handling strategies, etc.
https://github.com/vanthoainguyen/Burrow.NET/wiki/Get-started-with-Burrow.NET
63 stars 21 forks source link

Burrow

Burrow.NET, Release 1.0.x (since Mar 12, 2012)

This project is no longer under active development, that means there won't be any new features. However, I'll fix bugs and minor things such as dependency issues.


1. INTRODUCTION

This project is created based on the idea of EasyNetQ, since Mike Hadlow used MIT licence, I hope he doesn't mind when I use his source code in this project.

I was so lucky to have chances to work with RabbitMQ in my 2 recent companies. EasyNetQ is the library I looked into at first place. Honestly, It's a good implementation, the author covered many problems he got with RabbitMQ and I learnt from that as well. However, I created this project for below reasons:

Burrow.NET has been supporting all of those and other things, we've been using this library in many apps in our production environment to process million of messages a day.

Alright, to publish a message, you just need something like:

var tunnel = RabbitTunnel.Factory.Create();
tunnel.Publish(new OrderDetail
{   
    Name = "Google Nexus 7",
    Color = "Black",
    Amount = 1  
});

To subscribe:

var tunnel = RabbitTunnel.Factory.Create();
tunnel.Subscribe(new SubscriptionOption<OrderDetail>
{
    BatchSize = 2,
    MessageHandler = (msg) =>
    {
        // Process message here
    },
    QueuePrefetchSize = 10,
    SubscriptionName = "SubscriptionKey"
});

Ofcourse you're gonna need a connection string to RabbitMQ server, exchange and queue defined to make it work. Please go to document page for more details how to run the test projects.

Beside Burrow.NET, I have implemented Burrow.Extras and Burrow.RPC which provide some utilities to play with RabbitMQ using C# such as priority queue implementation and RPC.

2. WHERE TO START?

3. DOCUMENT

Documentation can be found at github wiki page: https://github.com/vanthoainguyen/Burrow.NET/wiki/_pages

Some blog posts:

Nuget library is also added at http://nuget.org/packages/Burrow.NET

4. LICENCE

http://sam.zoy.org/wtfpl/COPYING Troll