Recent Releases of https://github.com/ruby-amqp/amq-protocol
https://github.com/ruby-amqp/amq-protocol - 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
- Ruby
Published by michaelklishin about 1 month ago
https://github.com/ruby-amqp/amq-protocol - 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.
- Ruby
Published by michaelklishin 3 months ago
https://github.com/ruby-amqp/amq-protocol - 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.
- Ruby
Published by michaelklishin 3 months ago
https://github.com/ruby-amqp/amq-protocol - 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
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
- Ruby
Published by michaelklishin 4 months ago