= Version 0.8.0
* [API] AMQP::Session#on_skipped_heartbeats callback that can be used to handle skipped heartbeats (for cases when TCP network failure detection is not timely enough)
* [API] AMQP::Exchange#publish calls now use a mutex on the channel exchange is declared on. Sharing channels between threads is discouraged but amqp gem covers your back in the most dangerous case.
* [API] AMQP::Channel#synchronize now can be used to guarantee mutual exclusion of multiple threads on channel instances.
* [BUG] Empty messages can finally be published fine. Yes, it took us just 3 years.
* [FEATURE] When connected to RabbitMQ, RabbitMQ-specific extensions are required automatically
* [FEATURE] AMQP::Session#broker and AMQP::Broker allow for broker capabilities inspection
* [FEATURE] New bitset-based channel id allocator
* [FEATURE] Multiple consumers per queue with AMQP::Consumer
* [FEATURE] Automatic recovery mode for channels
* [FEATURE] Network connection recovery callbacks for channels, exchanges, queues, consumers
* [API] Connection URI (string) format for vhosts no longer assumes that vhosts begin with a slash (/), learn more at http://bit.ly/mfzwcB
* [FEATURE] Returned messages, including header & content via AMQP::Exchange#on_publish. Callback accepts 3 args: basic_return, header, body
* [BUG] Ruby 1.8.7-p249 is not supported because of this (p249-specific) Ruby bug: http://bit.ly/iONBmH
* [FEATURE] AMQP::Utilities::EventLoopHelper detects app server (if any) being used and starts EventMachine reactor in an optimal way.
* [FEATURE] AMQP 0.9.1 support, including tx.* operations class.
* [API] Default authentication handler now raises AMQP::PossibleAuthenticationFailureError
* [API] AMQP::Channel#initialize now takes 3rd (optional) options hash.
* [API] Broker connection class is now AMQP::Session.
* [API] AMQP::Error instance now may carry cause, an exception that caused exception in question to be raised.
* [API] When initial TCP connection fails, default action is now to raise AMQP::TCPConnectionFailed.
* [API] AMQP::BasicClient#reconnect now takes 2nd optional argument, period of waiting in seconds.
* [FEATURE] Handlers for initial connection failure, connection loss; channel-level exceptions handlers on Channel instances.
* [API] AMQP::Exchange#initialize now accepts :arguments option that takes a hash.
* [API] AMQP::Queue#initialize now accepts :arguments option that takes a hash.
* [API] AMQP#Logger is deprecated. It will be removed before 1.0 release.
* [API] AMQP#fork is deprecated. It will be removed before 1.0 release.
* [API] AMQP::RPC is deprecated. It will be removed before 1.0 release.
* [FEATURE] Significant improvements to the documentation. From now on lack of/poor documentation is considered a severe bug.
* [FEATURE] Support for RabbitMQ extensions to AMQP 0.9.1
* [API] AMQP::Exchange#publish now accepts (an optional) callback.
* [API] AMQP::Channel.new now accepts (an optional) callback.
* [API] AMQP::Header#ack now can acknowledge multiple deliveries
* [API] AMQP::Exchange#delete now takes (an optional) block that is called when exchange.delete-ok response arrives.
* [API] AMQP::Header now implements #to_hash
* [API] AMQP::Queue#pop block now can take 1, 2 or 3 arguments.
* [API] AMQP::Queue#purge now takes an optional block which is called when queue.purge-ok response arrives.
* [API] AMQP::Queue#delete now takes an optional block which is called when queue.delete-ok response arrives.
* [API] AMQP::Queue#delete now accepts :nowait option.
* [API] AMQP::Queue#unbind now takes an optional block which is called when queue.unbind-ok response arrives.
* [API] AMQP::Queue#unbind now accepts :routing_key as alias to :key. we believe it is a good idea to use AMQP terms.
* [API] AMQP::Channel#prefetch now takes (an optional) 2nd parameter that specifies that QoS settings should be applied to underlying connection, as well as optional callback.
* [API] AMQP::Channel#recover now takes (an optional) callback that is called when basic.recover-ok is received.
* [API] AMQP::Frame is gone.
* [API] AMQP::Buffer is gone. Serialization & framing are now handled primarily by amq-protocol.
* [API] AMQP::Queue#publish is deprecated.
* [API] Name argument for AMQP::Queue.new and Channel#queue is optional.
= Version 0.7.2
* [BUG] Server-named queues declared en masse now get their unique names instead of all beign assigned the first generated name
* [API] Connection URI (string) format for vhosts no longer assumes that vhosts begin with a slash (/), learn more at http://bit.ly/mfzwcB
* [BUG] Queue#reset leaks consumer tags [#40].