2.0.0 has breaking changes in header encoding.
Integer values in headers are now encoded as signed 64-bit (was unsigned 32-bit previously, unintentionally).
This is a breaking change: consuming messages with integers in headers published with older versions of this library will break!
Signed 16 bit integers are now decoded correctly.
Signed 8 bit integers are now decoded correctly.
Contributed by Benjamin Conlan.
AMQ::BitSet#next_clear_bit
is now drastically more efficient
(down from 6 minutes for 10,000 iterations to 4 seconds for 65,536 iterations).
Contributed by Doug Rohrer, Dave Anderson, and Jason Voegele from Neo.
Messages exactly 128 Kb in size are now framed correctly.
Contributed by Nicolas Viennot.
connection.blocked
AMQP 0.9.1 extension is now supported
(should be available as of RabbitMQ 3.2).
Encoding of large payloads is now done more efficiently.
Contributed by Greg Brockman.
AMQ::Settings
extracts settings merging logic and AMQP/AMQPS URI parsing from amq-client
.
Parsing follows the same convention amqp gem and RabbitMQ Java client follow.
Examples:
AMQ::Settings.parse_amqp_url("amqp://dev.rabbitmq.com") # => vhost is nil, so default (/) will be used
AMQ::Settings.parse_amqp_url("amqp://dev.rabbitmq.com/") # => vhost is an empty string
AMQ::Settings.parse_amqp_url("amqp://dev.rabbitmq.com/%2Fvault") # => vhost is /vault
AMQ::Settings.parse_amqp_url("amqp://dev.rabbitmq.com/production") # => vhost is production
AMQ::Settings.parse_amqp_url("amqp://dev.rabbitmq.com/a.b.c") # => vhost is a.b.c
AMQ::Settings.parse_amqp_url("amqp://dev.rabbitmq.com/foo/bar") # => ArgumentError
AMQ::Protocol::TLS_PORT
is a new constant that contains default AMQPS 0.9.1 port,
5671.