[rabbitmq-discuss] Bunny fork

David MacIver david at drmaciver.com
Fri May 14 12:41:16 BST 2010


Hi everyone,

This is just a heads up in case anyone finds themselves in a similar
position to me: I've been using Bunny (Chris Duncan's Ruby AMQP
client) on a work project, and it's largely been great, but I've run
into a few issues, so I've created a fork which fixes them:
http://github.com/DRMacIver/bunny

Differences from the current released version:

Improvements:

* Flow control is supported (the released version will crash when
rabbit sends flow control messages)
* Somewhat better error diagnostics when things go wrong
* Subscriptions are much more powerful - they're essentially fully
supported - you can subscribe to multiple queues, mix subscriptions
and other messages, etc. The API is quite rough at the moment and I'll
probably be tinkering with it a reasonable amount, but it does  work.
* A few miscellaneous bug fixes (e.g. Bunny 0.6 will create malformed
headers for some tables when the values are Bignums)

Incompatibilities:

* 0.9.1 support is totally ripped out
* some of the old subscription behaviour is gone - max_message,
unsubscribe automatically on exiting the loop, etc. This was largely
because they interact poorly with the changes I made to support more
general subscriptions. Basic operation is *largely* compatible, but
there are a fair few differences.
* a bunch of files have moved about so if you're relying on bunny
internals your code will almost certainly break.

One massive caveat: I'm not planning to maintain this in any official
capacity. Chris has done a great job with Bunny, and is a much more
responsible maintainer than I'm likely to be. These are really just
the fixes I needed to get things done, and my long term goal is
definitely to try to get all these improvements merged back into the
Bunny mainline, but that's not straightforward at the moment due to
the various features I bulldozed out of the way in my hurry to get
this done. I'm simply letting people know that this exists in case you
need some of these fixes now and are willing to risk running
unreleased code to get them.

Regards,
David



More information about the rabbitmq-discuss mailing list