[rabbitmq-discuss] Introducing PUKA, the opinionated RabbitMQ python client

Marek Majkowski majek04 at gmail.com
Mon Dec 13 17:58:44 GMT 2010


I'm not a fan of the API's exposed by various RabbitMQ clients
and I've been experimenting on how to fix it.
The result took a form of yet-another Python AMQP library - Puka.

The major features include:
 - channels are completely removed from the public API
 - sane handling of AMQP errors (ie: your whole connection shouldn't
   blow away if you make a mistake in a single place)
 - the API is fully asynchronous (should be easy to plug it into Tornado)
 - the framing is reasonably optimized
 - basic_publish can behave like a 'synchronous' method, ie: it's
   possible to make sure the message wasn't lost when transferring
   over the network.

You can grab the sources here:

Unfinished API reference here:

Some examples:
1) basic examples

2)  code from tutorials using Puka:

3) some early attempts to integrate Puka with TornadoWeb:

Comments are warmly welcomed!

  Marek Majkowski

More information about the rabbitmq-discuss mailing list