[rabbitmq-discuss] ANN Bunny 0.9.0.pre1 is released, feedback wanted

Michael Klishin michael.s.klishin at gmail.com
Tue Nov 27 21:56:39 GMT 2012


After a recent [1] announcement of what's going on with Bunny 0.9,
time for initial preview release and some feedback gathering.

0.9.0.pre1 is up on rubygems.org:
https://rubygems.org/gems/bunny/versions/0.9.0.pre1

What's in the box?

 * All AMQP 0.9.1 features implemented
 * Proper content framing: you now can publish empty messages and messages
larger than max frame size (128K)
 * "Real" support for consumers (Bunny::Queue#subscribe): Bunny no longer
reimplements some RabbitMQ features in the client, now runs consumer
handlers in a thread pool.
 * All but one RabbitMQ extension to the protocol (publisher confirms) are
supported, more nice features to come in the future
 * Operations that block and return values in earlier releases still work
the same way, however, network activity and dispatch of incoming messages
(deliveries, returned messages) now happens in separate threads. This means
that Rubinius and JRuby, Bunny even will now use multiple cores if
available.

In addition, Bunny now uses amq-protocol under the hood so all improvements
there
will benefit both amqp gem and Bunny.

Now, Bunny has always been a little scarse on documentation and this
release has some
breaking API changes (almost all are around consumer-related functionality,
so if you only
publish messages, it should be nearly completely backwards-compatible).
Where to
find what the new API looks like?

The answer is in our new shiny test suite:
https://github.com/ruby-amqp/bunny/tree/migrate_to_amq_protocol/spec/higher_level_api/integration

And here's initial bits of the change log, which will be greatly expanded
before 0.9.0 final:
https://github.com/ruby-amqp/bunny/blob/migrate_to_amq_protocol/ChangeLog.md

I encourage you to take a look and ideally give it a try.

What is left to be done:

 * Specifics around how to handle error conditions, network splits,
 * Graceful consumer shutdown
 * Publisher confirms support with a nice API (e.g.
Bunny::Exchange#publish_and_wait_for_confirmation)
 * Documentation guides (we will port content and examples from
http://rubyamqp.info)
 * Proper change log
 * HTTP API support, if time permits and there is enough interest

This is the first preview of several: while most of the work is done, to
compensate
for some breaking changes in this version, we will have to spend some time
really
polishing and documenting it.

I personally really like how the new Bunny shapes up. I think it can be a
better
RabbitMQ Ruby client than amqp gem in almost every aspect. But to make it
so,
we need more input from developers like you. Please give it a try and tell
us what you think!


1. https://groups.google.com/forum/?fromgroups=#!topic/ruby-amqp/7gxdN9xxeOE
-- 
MK

http://github.com/michaelklishin
http://twitter.com/michaelklishin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20121128/59e61b5e/attachment.htm>


More information about the rabbitmq-discuss mailing list