<div>This release represents a substantial refactor of the Pika code base to make it asynchronous at the core. As such, this release is tagged as alpha and I am encouraging those familiar with Pika to download this and test it in their environment and provide feedback. Special thanks go to Tony for the direction and support, Brian Jones and Chris Hager for code review and to Marek Majkowski for the improvements to table encoding and decoding.</div>
<div><br></div><div>It has been tested against Python 2.4.4, Python 2.5.4, Python 2.6.1+ and all versions of RabbitMQ from 2.0 forward. </div><div><br></div><div>Users are highly encouraged to review the documentation at <a href="https://tonyg.github.com/pika/">https://tonyg.github.com/pika/</a></div>
<div><br></div><div>Major Changes since 0.5.2:</div><div><br></div><div> * Pika has been restructured and made to be fully asynchronous at its core and now supports AMQP 0-9-1 only (RabbitMQ 2.0+)</div><div> * There are many method definition changes, class name changes and module changes</div>
<div> * Asynchronous AMQP commands now take a callback parameter for notification of completion</div><div> * AMQP commands that are specified as synchronous now buffer other calls on the same channel, sending them when the synchronous commands send their response frame</div>
<div> * SelectConnection is now the recommended connection adapter and shows better performance than the AsyncoreConnection. SelectConnection implements select, poll, epoll and kqueue for event handling</div><div> * TornadoConnection adds a connection adapter for the Tornado IOLoop</div>
<div> * Client channel flow control has been removed</div><div> * Support for additional AMQP data types have been added</div><div> * More extensive unit and functional tests added</div><div> * Extensive use of logging at the DEBUG level allows for tracing of all internal activity in Pika and all frames sent to and from RabbitMQ</div>
<div> * Emphasis on code readability and well commented code through-out</div><div> </div><div>Internal changes since 0.5.2:</div><div><br></div><div> * Low level debug logging demonstrates client behavior and can be toggled via</div>
<div> pika.log.DEBUG boolean value.</div><div> * Classes now implement new style classes</div><div> * Major restructuring of existing modules and classes</div><div> * Universal callback mechanism added, removing events and other callback</div>
<div> methods</div><div> * Added BaseConenction which extends Connection and builds in default behaviors</div><div> for asynchronous connection adapters.</div><div> * Abstracted content frame handling to its own class, channel.ContentHandler</div>
<div> * ConnectionState class moved from codec to connection</div><div> * Frame class definitions moved from codec to frames</div><div> * Reconnection strategies moved into own module</div><div> * Global callback manager implemented</div>
<div> * HeartbeatChecker moved to own module</div><div> * PlainCredentials moved to credentials module for extensibility</div><div> * AsyncoreConnection rewritten to align with BaseConnection</div><div> * BlockingConnection rewritten to extend BaseConnection and added BlockingChannel and BlockingChannelTransport</div>
<div> * PEP8ification and use more pythonic idioms for areas as appropriate</div><div> </div><div>Installation is available via pypi and directly from source.</div><div><br></div><div>Please use the issue tracker at <a href="https://github.com/tonyg/pika/issues">https://github.com/tonyg/pika/issues</a> for any issues you may encounter and feel free to contact me directly or on list with any questions or comments.</div>
<div><br></div><div>Regards,</div><div><br></div><div>Gavin</div>