Ruby RabbitMQ clients blog

News and updates about various Ruby clients for RabbitMQ

Bunny 2.3.1 Is Released

TL;DR

Bunny 2.3.1 is released to rubygems.org.

2.3.1 is a maintenance release.

Changes between Bunny 2.3.0 and 2.3.1

Support (Quoted) IPv6 Addresses in Address Lists

GitHub issue: #383.

Contributed by Jeremy Heiler.

Transport#read_fully Doesn’t Try to Recover

Since transport is replaced by a recovering connection anyway, and this produces confusing errors up the stack.

GitHub issue: #359

Contributed by Donal McBreen.

Full Change Log

Full change log can be found on GitHub.

About the Author

Michael maintains Bunny and several other RabbitMQ client libraries.

Amqp Gem 1.6.0 Is Released

TL;DR

amqp gem 1.6.0 is released to rubygems.org.

This is a maintenance release that has no new features but updates amq-protocol dependency and drops Ruby 1.9 support.

Changes Between 1.5.0 and 1.6.0

amq-protocol Update

Minimum amq-protocol version is now 2.0.1.

Provide More Details in TCP Connection Failure Exception

Contributed by Neil Hooey.

GH issue: #222.

Ensures frameset is cleared after an unhandled exception

Ensures frameset is cleared after an unhandled exception. This avoids confusing exceptions such as

1
undefined method `method_class' for #<AMQ::Protocol::BodyFrame:0x0000001e8a60b0>

Contributed by Michael Lutsiuk.

GH issue: #218

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.3 Is Released

TL;DR

amqp gem 1.5.3 is released to rubygems.org.

This is a maintenance release.

Changes Between 1.5.1 and 1.5.3

Provide More Details in TCP Connection Failure Exception

Contributed by Neil Hooey.

GH issue: #222.

Ensures frameset is cleared after an unhandled exception

Ensures frameset is cleared after an unhandled exception. This avoids confusing exceptions such as

1
undefined method `method_class' for #<AMQ::Protocol::BodyFrame:0x0000001e8a60b0>

Contributed by Michael Lutsiuk.

GH issue: #218

Full Change Log

Full change log can be found on GitHub.

About the Author

Michael on behalf of the Ruby RabbitMQ Clients Team

Bunny 2.3.0 Is Released

TL;DR

Bunny 2.3.0 is released to rubygems.org.

2.3.0 is a minor feature release.

Changes between Bunny 2.2.0 and 2.3.0

Thread#abort_on_exception Setting for Consumer Work Pool Threads

Bunny::Session#create_channel now supports a 3rd argument that, when set to true, makes consumer work pool threads to have Thread#abort_on_exception set on them.

GH issue: #382

Contributed by Seamus Abshere.

Explicit Transport Closure on Recovery

Bunny now will explicitly close previosly used transport before starting connection recovery.

GitHub issue: #377.

Contributed by bkanhoopla.

No TLS Socket Double-init

Makes sure that TLS sockets are not double-initialized.

GH issue: #345.

Contributed by Carl Hörberg.

Lazily Evaluated Debug Log Strings

GH issue: #375

Contributed by Omer Katz.

Full Change Log

Full change log can be found on GitHub.

About the Author

Michael maintains Bunny and several other RabbitMQ client libraries.

Hutch 0.21.0 Is Released

TL;DR

Hutch 0.21.0 is released to rubygems.org.

This is a bug fix release.

Changes Between 0.20.0 and 0.21.0 (February 7th, 2016)

JRuby Compatibility Restored

Contributed by Jesper Josefsson.

More Reliable Rails app Detection

Rails application detection now won’t produce false positives for applications that include config/environment.rb. Instead, bin/rails and script/rails are used.

Contributed by @bisusubedi.

Refactoring

Contributed by Jesper Josefsson and Olle Jonsson.

Full Changelog

Full change log can be found on GitHub.

About the Author

Michael on behalf of the Hutch maintainers Team.

Bunny 2.2.2 Is Released

TL;DR

Bunny 2.2.2 is released to rubygems.org.

2.2.2 is a maintenance release.

Changes between Bunny 2.2.1 and 2.2.2

amq-protocol Update

Minimum required amq-protocol version is now 2.0.1 which includes bug fixes.

Full Change Log

Full change log can be found on GitHub.

About the Author

Michael maintains Bunny and several other RabbitMQ client libraries.

Hutch 0.20.0 Is Released

TL;DR

Hutch 0.20.0 is released to rubygems.org.

This is a minor feature release.

Changes between 0.19.0 and 0.20.0

Hutch::Exception includes Bunny::Exception

Hutch::Exception now inherits from Bunny::Exception which inherits from StandardError.

GH issue: #137.

Pluggable (Negative) Acknowledge Handlers

Hutch now can be configured to use a user-provided object(s) to perform acknowledgement on consumer exceptions.

For example, this is what the default handler looks like:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
require 'hutch/logging'
require 'hutch/acknowledgements/base'

module Hutch
  module Acknowledgements
    class NackOnAllFailures < Base
      include Logging

      def handle(delivery_info, properties, broker, ex)
        prefix = "message(#{properties.message_id || '-'}): "
        logger.debug "#{prefix} nacking message"

        broker.nack(delivery_info.delivery_tag)

        # terminates further chain processing
        true
      end
    end
  end
end

Handlers are configured similarly to exception notification handlers, via :error_acknowledgements in Hutch config.

Contributed by Derek Kastner.

GH issue: #177.

Configurable Exchange Properties

:mq_exchange_options is a new config option that can be used to provide a hash of exchange attributes (durable, auto-delete). The options will be passed directly to Bunny (or March Hare, when running on JRuby).

Contributed by Derek Kastner.

GH issue: #170.

Bunny Update

Bunny is updated to 2.2.1.

Full Changelog

Full change log can be found on GitHub.

About the Author

Michael on behalf of the Hutch maintainers Team.

Bunny 2.2.1 Is Released

TL;DR

Bunny 2.2.1 is released to rubygems.org.

2.2.1 is a maintenance release.

Changes between Bunny 2.2.0 and 2.2.1

No TLS Socket Double-init

Makes sure that TLS sockets are not double-initialized.

GH issue: #345.

Contributed by Carl Hörberg (CloudAMQP).

Full Change Log

Full change log can be found on GitHub.

About the Author

Michael maintains Bunny and several other RabbitMQ client libraries.