Releases: ruby-amqp/amq-protocol
Releases · ruby-amqp/amq-protocol
v2.7.0
v2.6.0
Changes between 2.5.1 and 2.6.0 (Mar 30, 2026)
Channel.Close Predicate Methods
Channel::Close now provides predicate methods for identifying common
channel closure reasons by reply code and text:
#delivery_ack_timeout?: consumer delivery acknowledgement timeout#unknown_delivery_tag?: unknown delivery tag (e.g. double ack)#message_too_large?: message exceeded the configured max size
v2.5.1
Changes between 2.5.0 and 2.5.1 (Jan 19, 2026)
Windows Installation Fixes
2.4.0 and 2.5.0 versions unintentionally included files that were
symlinks, which caused installation on Windows to fail.
v2.5.0
Changes between 2.4.0 and 2.5.0 (Dec 31, 2025)
Additional Consumer Hot Path Optimizations
A few more decode method optimizations for consumer delivery code paths.
v2.4.0
Changes between 2.3.4 and 2.4.0 (Dec 30, 2025)
Performance Improvements
Optimized encoding and decoding hot paths:
- Built-in
Q>/q>packing/unpacking directives are 6-7x faster than the original implementation (that originally targeted Ruby 1.8.x) - Switched to
unpack1instead ofunpack().firstthroughout - Use
bytesliceinstead ofslicefor binary string operations - Use
getbytefor single byte access (4x faster than alternatives) - Adopted the
frozen_string_literalpragma
The improvements on Ruby 3.4 are very meaningful:
AMQ::Pack.pack_uint64_big_endian: about 6.6x fasterAMQ::Pack.unpack_uint64_big_endian: about 7.2x fasterBasic.Deliver.decode: about 1.7x fasterBasic.Ack/Nack/Reject.encode: about 2.5x faster