Skip to content

Releases: ruby-amqp/amq-protocol

v2.5.1

20 Jan 00:08
1e8f7bd

Choose a tag to compare

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

20 Jan 00:09
77a07ca

Choose a tag to compare

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

31 Dec 04:14
9ff521b

Choose a tag to compare

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 unpack1 instead of unpack().first throughout
  • Use byteslice instead of slice for binary string operations
  • Use getbyte for single byte access (4x faster than alternatives)
  • Adopted frozen_string_literal pragma

The improvements on Ruby 3.4 are very meaningful:

  • AMQ::Pack.pack_uint64_big_endian: about 6.6x faster
  • AMQ::Pack.unpack_uint64_big_endian: about 7.2x faster
  • Basic.Deliver.decode: about 1.7x faster
  • Basic.Ack/Nack/Reject.encode: about 2.5x faster