Third pre-release version of amqp gem 0.8.0 is now available from <a href="http://rubygems.org">rubygems.org</a>.<br>Please help us test this RC!<br><br>Get it with<br><br>  gem install amqp --pre<br><br>and try using it as a drop-in replacement for 0.6 or 0.7. If you encounter any issues, please post them<br>

to <a href="https://github.com/ruby-amqp/amqp/issues">https://github.com/ruby-amqp/amqp/issues</a>. [Constantly improving] documentation is up at <a href="http://bit.ly/lQP1Al">http://bit.ly/lQP1Al</a>.<br><br><br>== Highlights<br>

<br>* amqp gem now implements version 0.9.1 of AMQP. This alone brings several new features.<br>* Support for several RabbitMQ-specific AMQP 0.9.1 extensions [1]<br>* many existing methods are refined and updated to be consistent with other methods in the library<br>

* there is now clear line between what is part of public gem API and what is a subject to change<br>* significant documentation improvements<br>* significant improvements to network and protocol error handling methods available as part of the API<br>

* performance &amp; memory usage improvements (and this a lot of room to improve now)<br>* test suite with plenty of integration examples that use AMQP broker<br><br><br>== Changes since RC1 and RC2<br><br>* TLS (aka SSL) support is back<br>

* Error handling: connection failures, connection loss, channel- and connection-level exceptions<br>* One minor bug fix<br>* Minor 0.7.x compatibility fixes<br><br><br>== Backwards compatibility<br><br>This release introduces many features<br>

and API improvements but also tries to be as backwards-compatible as possible. Unfortunately,<br>as with many Ruby gems, amqp 0.7.x and earlier did not clealry draw the line between what<br>other libraries and applications can use and what is an implementation detail. That&#39;s why we don&#39;t<br>

claim to be 100% backwards-compatible but went extra miles to make sure even controversial<br>methods/features/use cases of key classes work as before.<br><br><br>== Before you upgrade: check your broker version<br><br>Because of a switch to AMQP 0.9.1, before you upgrade make sure to check what version of RabbitMQ<br>

you are running. Even most recent released versions of Ubuntu and Debian still ship with versions as old as<br>1.7.2 and 1.8.0. 1.7.2 does not support AMQP 0.9.1 and thus won&#39;t work with amqp gem 0.8.0.<br><br>We are now in the process of writing documentation guides, tutorials and adding even more examples.<br>

If necessary, there will be one or more RC releases before final 0.8.0.<br><br><br>Below is brief changelog for this release. We hope you have a smooth upgrade.<br><br>= Version 0.8.0<br><br>  * [FEATURE] AMQP 0.9.1 support, including tx.* operations class.<br>

  * [API] AMQP::Channel#initialize now takes 3rd (optional) options hash.<br>  * [API] Broker connection class is now AMQP::Session.<br>  * [API] AMQP::Error instance now may carry cause, an exception that caused exception in question to be raised.<br>

  * [API] When initial TCP connection fails, default action is now to raise AMQP::TCPConnectionFailed.<br>  * [API] AMQP::BasicClient#reconnect now takes 2nd optional argument, period of waiting in seconds.<br>  * [FEATURE] Handlers for initial connection failre, connection loss; channel-level exceptions handlers on Channel instances.<br>

  * [API] AMQP::Exchange#initialize now accepts :arguments option that takes a hash.<br>  * [API] AMQP::Queue#initialize now accepts :arguments option that takes a hash.<br>  * [API] AMQP#Logger is deprecated. It will be removed before 1.0 release.<br>

  * [API] AMQP#fork is deprecated. It will be removed before 1.0 release.<br>  * [API] AMQP::RPC is deprecated. It will be removed before 1.0 release.<br>  * [FEATURE] Significant improvements to the documentation. From now on lack of/poor documentation is considered a severe bug.<br>

  * [FEATURE] Support for RabbitMQ extensions to AMQP 0.9.1<br>  * [API] AMQP::Exchange#publish now accepts (an optional) callback.<br>  * [API] AMQP::Channel.new now accepts (an optional) callback.<br>  * [API] AMQP::Header#ack now can acknowledge multiple deliveries<br>

  * [API] AMQP::Exchange#delete now takes (an optional) block that is called when exchange.delete-ok response arrives.<br>  * [API] AMQP::Header now implements #to_hash<br>  * [API] AMQP::Queue#pop block now can take 1, 2 or 3 arguments.<br>

  * [API] AMQP::Queue#purge  now takes an optional block which is called when queue.purge-ok response arrives.<br>  * [API] AMQP::Queue#delete now takes an optional block which is called when queue.delete-ok response arrives.<br>

  * [API] AMQP::Queue#delete now accepts :nowait option.<br>  * [API] AMQP::Queue#unbind now takes an optional block which is called when queue.unbind-ok response arrives.<br>  * [API] AMQP::Queue#unbind now accepts :routing_key as alias to :key. we believe it is a good idea to use AMQP terms.<br>

  * [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.<br>  * [API] AMQP::Channel#recover now takes (an optional) callback that is called when basic.recover-ok is received.<br>

  * [API] AMQP::Frame is gone.<br>  * [API] AMQP::Buffer is gone. Serialization &amp; framing are now handled primarily by amq-protocol.<br>  * [API] AMQP::Queue#publish is deprecated.<br>  * [API] Name argument for AMQP::Queue.new and Channel#queue is optional.<br>

<br><br>1: <a href="http://www.rabbitmq.com/blog/2011/03/01/ruby-amqp-benchmarks/">http://www.rabbitmq.com/blog/2011/03/01/ruby-amqp-benchmarks/</a><br>-- <br>MK