Skip to content

Python bindings to librabbitmq-c

License

GPL-2.0, Unknown licenses found

Licenses found

GPL-2.0
LICENSE-GPL-2.0
Unknown
LICENSE-MPL-RabbitMQ
Notifications You must be signed in to change notification settings

andrewsnowden/pylibrabbitmq

 
 

Repository files navigation

pylibrabbitmq - Python bindings to librabbitmq-c

Version: 0.5.0
Download:http://pypi.python.org/pypi/pylibrabbitmq/
Code:http://github.com/ask/pylibrabbitmq/
Keywords:rabbitmq, amqp, messaging, librabbitmq, rabbitmq-c, python

Experimental Python bindings to the RabbitMQ C-library librabbitmq.

You should probably use amqplib instead, but when needed you can come back to this if the extra performance is needed.

To install you need to compile librabbitmq:

$ mkdir -p /opt/Build/rabbit
$ cd /opt/Build/rabbit
$ hg clone http://hg.rabbitmq.com/rabbitmq-codegen/
$ hg clone http://hg.rabbitmq.com/rabbitmq-c/
$ cd rabbitmq-c
$ autoreconf -i
$ ./configure
$ make
$ make install

Then you can install this package:

$ cd pylibrabbitmq-x.x.x
$ python setup.py install
>>> from pylibrabbitmq import Connection, Message
>>> conn = Connection(host="localhost", userid="guest",
...                   password="guest", virtual_host="/")
>>> channel = conn.channel()
>>> channel.exchange_declare(exchange, type, ...)
>>> channel.queue_declare(queue, ...)
>>> channel.queue_bind(queue, exchange, routing_key)
>>> m = Message(body, content_type=None, content_encoding=None,
...             delivery_mode=1)
>>> channel.basic_publish(m, exchange, routing_key, ...)
>>> def dump_message(message):
...     print("Body:'%s', Proeprties:'%s', DeliveryInfo:'%s'" % (
...         message.body, message.properties, message.delivery_info))
...     message.ack()
>>> channel.basic_consume(queue, ..., callback=dump_message)
>>> while True:
...    connection.drain_events()
>>> message = channel.basic_get(queue, ...)
>>> if message:
...     dump_message(message)
...     print("Body:'%s' Properties:'%s' DeliveryInfo:'%s'" % (
...         message.body, message.properties, message.delivery_info))
>>> channel.queue_unbind(queue, ...)
>>> channel.close()
>>> connection.close()

This software is licensed under the Mozilla Public License. See the LICENSE-MPL-RabbitMQ file in the top distribution directory for the full license text.

About

Python bindings to librabbitmq-c

Resources

License

GPL-2.0, Unknown licenses found

Licenses found

GPL-2.0
LICENSE-GPL-2.0
Unknown
LICENSE-MPL-RabbitMQ

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 72.3%
  • Python 27.7%