Bunny 2.0.0 is released to rubygems.org.
2.0.0 is a minor feature and bug fix release that drops Ruby 1.9 and 1.8 support.
Changes between Bunny 1.7.0 and 2.0.0
2.0 doesn’t have any breaking API changes
but drops Ruby 1.8 and 1.9 (both EOL’ed) support,
hence the version.
Minimum Required Ruby Version is 2.0
2.0 requires Ruby 2.0 or later.
Bunny now uses non-blocking socket writes, uses a reduced number of writes for message publishing (frames are batched into a single write), and handles TCP back pressure from RabbitMQ better.
Contributed by Irina Bednova and Michael Klishin.
Reduced Timeout Use
Bunny::ContinuationQueue#poll no longer relies on Ruby’s
Timeout which has
numerous issues, including starting a new “interruptor” thread per operation,
which is far from efficient.
Contributed by Joe Eli McIlvain and Carl Hörberg.
Capped Number of Connection Recovery Attempts
:recovery_attempts is a new option that limits the number of
connection recovery attempts performed by Bunny.
Contributed by Irina Bednova.
Bunny::Channel#basic_ack and Related Methods Improvements
now adjust delivery tags between connection recoveries, as well as have a default value for
the second argument.
Contributed by Wayne Conrad.
Logger Output Remains Consistent
@logger.progname attribute changes the output of the logger.
This is not expected behaviour when the client provides a custom logger.
Behaviour remains unchainged when the internally initialized logger is used.
Contributed by Justin Carter.
prefetch_count is Limited to 65535
prefetch_count field is of type
short in the protocol,
Bunny must enforce its maximum allowed value to
2^16 - 1 to avoid
confusing issues due to overflow.
Per-Consumer and Per-Channel Prefetch
Recent RabbitMQ versions support
global flag, controlling whether
prefetch applies per-consumer or per-channel. Bunny
allows flag to be set as optional parameter, with the same default behaviour as
Contributed by tiredpixel.
Full Change Log
Full change log can be found on GitHub.
About the Author
Michael maintains Bunny and several other RabbitMQ client libraries.