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

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


Hi,

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:
    https://github.com/majek/puka

Unfinished API reference here:
    http://majek.github.com/puka/puka.html

Some examples:
1) basic examples
    https://github.com/majek/puka/tree/master/examples

2)  code from tutorials using Puka:
    https://github.com/majek/rabbitmq-tutorials/tree/puka/python-puka

3) some early attempts to integrate Puka with TornadoWeb:
    https://github.com/majek/tornadopuka


Comments are warmly welcomed!

Cheers,
  Marek Majkowski


More information about the rabbitmq-discuss mailing list