Ruby RabbitMQ clients blog

News and updates about various Ruby clients for RabbitMQ

Bunny 1.6.2 Is Released

TL;DR

Bunny 1.6.2 is released to rubygems.org.

1.6.2 is a bug fix release.

Changes between Bunny 1.6.1 and 1.6.2

JRuby Writes Fixes

On JRuby, Bunny reverts back to using plain old write(2) for writes. The CRuby implementation on JRuby suffers from I/O incompatibilities. Until JRuby

Bunny users who run on JRuby are highly recommended to switch to March Hare, which has nearly identical API and is significantly more efficient.

Changes between Bunny 1.6.0 and 1.6.1

Bunny::Session#with_channel Synchornisation Improvements

Bunny::Session#with_channel is now fully synchronised and won’t run into COMMAND_INVALID errors when used from multiple threads that share a connection.

Full Change Log

Full change log can be found on GitHub.

About the Author

Michael on behalf of the Ruby RabbitMQ Clients Team

March Hare 2.7 Is Released

TL;DR

March Hare 2.7.0 is released to rubygems.org.

This is a minor feature release.

Changes Between 2.6.0 and 2.7.0

RabbitMQ Java Client Upgrade

RabbitMQ Java client dependency has been updated to 3.4.1.

Host List Selection Improvements

Host selection from the list is now randomised.

Contributed by Michael Ries.

Changes Between 2.5.0 and 2.6.0

RabbitMQ Java Client Upgrade

RabbitMQ Java client dependency has been updated to 3.4.0.

Host Lists

It is now possible to pass the :hosts option to MarchHare.connect. When connection to RabbitMQ (including during connection recovery), a random host will be chosen from the list.

Better Bunny Compatibility: the Heartbeat Option

MarchHare.connect now accepts :heartbeat as an alias for :heartbeat_requested for better Bunny compatibility (and because API reference accidentally listed it).

GH issue: #57.

Full Change Log

Please consult the change log to learn about the changes.

About the Author

Michael on behalf of the Ruby RabbitMQ Clients Team

Bunny 1.6.0 Is Released

TL;DR

Bunny 1.6.0 is released to rubygems.org.

1.6 is makes the library use TLS 1.0 or later when possible and introduces a few minor features and improvements.

Changes between Bunny 1.5.0 and 1.6.0

TLSv1 by Default

TLS connections now prefer TLSv1 (or later, if available) due to the recently discovered POODLE attack on SSLv3.

Contributed by Michael Klishin (Pivotal) and Justin Powers (Desk.com).

GH issues:

Socket Read and Write Timeout Improvements

Bunny now sets a read timeout on the sockets it opens, and uses IO.select timeouts as the most reliable option available on Ruby 1.9 and later.

GH issue: #254.

Contributed by Andre Foeken (Nedap).

Inline TLS Certificates Support

TLS certificate options now accept inline certificates as well as file paths.

GH issues: #255, #256.

Contributed by Will Barrett (Sqwiggle).

Full Change Log

Full change log can be found on GitHub.

About the Author

Michael on behalf of the Ruby RabbitMQ Clients Team

Hutch 0.10.0 Is Released

TL;DR

Hutch 0.10.0 is released to rubygems.org.

This release introduces several minor new features.

0.10.0 — Oct 22, 2014

Configuration via URI

Hutch now supports a new configuration key, :uri, which allows connection configuration via a URI.

Note that since the URI has to include credentials, this option is not available on the command line.

Bunny Update

Bunny is updated to 1.5.1, which mitigates the POODLE attack by disabling SSL 3.0 where possible.

Payload in Error Handlers

Error handlers will now have access to message payload.

Contributed by Daniel Farrell.

Exceptions in Error Handlers Don’t Prevent Nacks

Exceptions in error handlers no longer prevent messages from being basic.nack-ed.

Pid File Support

:pidfile is a new configuration option that stores Hutch process PID in a file at provided path.

Contributed by Rustam Sharshenov.

More Info on Message

Bunny’s delivery_info, properties and payload are now accessible on Hutch::Message.

Contributed by gregory.

Optional Config Parameters

Hutch::Config constructor now accepts an extra hash of optional configuration parameters.

Contributed by Ignazio Mostallino.

0.9.0 — May 13, 2014

Platform-aware Signal Registration

Hutch will no longer attempt to register signal traps for signals not supported by the environment (e.g. on by certain OSes).

Contributed by Tobias Matthies.

TLS Fixes

Hutch now properly passes client TLS key and certificate to Bunny.

Contributed by Eric Nelson.

Bunny Update

Bunny is updated to 1.2.x which should offer much better latency for workloads with lots of small messages published frequently.

More Unit Testing Friendly CLI/Runner

Hutch::CLI#run now accepts a parameter and is easier to use in automated tests.

Full Changelog

Full change log can be found on GitHub.

About the Author

Michael on behalf of the Hutch maintainers Team.

Bunny 1.5.1 Is Released

TL;DR

Bunny 1.5.1 is released to rubygems.org.

This is a security release.

Changes between Bunny 1.5.0 and 1.5.1

TLSv1 by Default

TLS connections now prefer TLSv1 (or later, if available) due to the recently discovered POODLE attack on SSLv3.

Contributed by Michael Klishin (Pivotal) and Justin Powers (Desk.com).

GH issues:

Full Change Log

Full change log can be found on GitHub.

About the Author

Michael on behalf of the Ruby RabbitMQ Clients Team

Bunny 1.6.0.rc2 Is Released

TL;DR

Bunny 1.6.0.rc2 is released to rubygems.org.

1.6 is a minor feature release that makes the library use TLS 1.0 or later when possible.

Changes between Bunny 1.5.0 and 1.6.0-rc2

TLSv1 by Default

TLS connections now prefer TLSv1 (or later, if available) due to the recently discovered POODLE attack on SSLv3.

Contributed by Michael Klishin (Pivotal) and Justin Powers (Desk.com).

GH issues:

Socket Read and Write Timeout Improvements

Bunny now sets a read timeout on the sockets it opens, and uses IO.select timeouts as the most reliable option available on Ruby 1.9 and later.

GH issue: #254.

Contributed by Andre Foeken (Nedap).

Inline TLS Certificates Support

TLS certificate options now accept inline certificates as well as file paths.

GH issues: #255, #256.

Contributed by Will Barrett (Sqwiggle).

Full Change Log

Full change log can be found on GitHub.

About the Author

Michael on behalf of the Ruby RabbitMQ Clients Team

Bunny 1.5.0 Is Released

TL;DR

Bunny 1.5.0 is released to rubygems.org.

This is a minor feature and bug fix release.

Changes between Bunny 1.4.0 and 1.5.0

Improved Uncaught Exception Handler

Uncaught exception handler now provides more information about the exception, including its caller (one more stack trace line).

Contributed by Carl Hörberg (CloudAMQP).

Convenience Method for Temporary (Server-named, Exclusive) Queue Declaration

Bunny::Channel#temporary_queue is a convenience method that declares a new server-named exclusive queue:

1
q = ch.temporary_queue

Contributed by Daniel Schierbeck (Zendesk).

Recovery Reliability Improvements

Automatic connection recovery robustness improvements. Contributed by Andre Foeken (Nedap).

Host Lists

It is now possible to pass the :hosts option to Bunny.new/Bunny::Session#initialize. When connection to RabbitMQ (including during connection recovery), a random host will be chosen from the list.

Connection shuffling and robustness improvements.

Contributed by Andre Foeken (Nedap).

Full Change Log

Full change log can be found on GitHub.

About the Author

Michael on behalf of the Ruby RabbitMQ Clients Team

Bunny 1.4.1 Is Released

TL;DR

Bunny 1.4.1 is released to rubygems.org.

This is a bug fix release.

Changes between Bunny 1.4.0 and 1.4.1

Prevent Default Channel From Being Re-opened Twice on Recovery

Bunny’s default channel (a relic from the 0.7.x days when channels were not even part of the API) is no longer recovered one time too many.

Contributed by Carl Chatfield.

Full Change Log

Full change log can be found on GitHub.

About the Author

Michael on behalf of the Ruby RabbitMQ Clients Team

Amqp Gem 1.5.0 Is Released

TL;DR

amqp gem 1.5.0 is released to rubygems.org.

This is a bug fix release.

Changes Between 1.4.x and 1.5.0

Only Await basic.consume-ok If nowait is false

Contributed by Rian McGuire.

Server-Named Queue Recovery Fix

Server-named queues are now correctly recovered again.

Contributed by Jack C Hong.

Full Change Log

Full change log can be found on GitHub.

About the Author

Michael on behalf of the Ruby RabbitMQ Clients Team

Bunny 1.4.0 Is Released

TL;DR

Bunny 1.4.0 is released to rubygems.org.

This is a usability and bug fix release.

Changes between Bunny 1.3.x and 1.4.0

Channel#wait_for_confirms Returns Immediately If All Publishes Confirmed

Contributed by Matt Campbell.

Publisher Confirms is In Sync After Recovery

When a connection is recovered, the sequence counter resets on the broker, but not the client. To keep things in sync the client must store a confirmation offset after a recovery.

Contributed by Devin Christensen.

NoMethodError on Thread During Shutdown

During abnormal termination, Bunny::Session#close no longer tries to call the non-existent terminate_with method on its origin thread.

Full Change Log

Full change log can be found on GitHub.

About the Author

Michael on behalf of the Ruby RabbitMQ Clients Team