Skip to main content

A pure python, thread-safe, minimalistic and pythonic RabbitMQ client library

Project description

rabbitpy - rabbitmq simplified

A pure python, thread-safe, minimalistic and pythonic BSD Licensed AMQP/RabbitMQ library that supports Python 2.6+ and Python 3.2+. rabbitpy aims to provide a simple and easy to use API for interfacing with RabbitMQ, minimizing the programming overhead often found in other libraries.

PyPI version Downloads Build Status

Installation

rabbitpy may be installed via the Python package index with the tool of your choice. I prefer pip:

pip install rabbitpy

But there’s always easy_install:

easy_install rabbitpy

rmqid Compatibility

rabbitpy is API compatible with rmqid.

Documentation

https://rabbitpy.readthedocs.org

Requirements

Examples

Simple Publisher

The simple publisher is ideal for sending one off messages:

>>> rabbitpy.publish('amqp://guest:guest@localhost:5672/%2f',
                     exchange='test',
                     routing_key='example',
                     body='This is my test message')

If you want to add properties:

>>> rabbitpy.publish('amqp://guest:guest@localhost:5672/%2f',
                     exchange='test',
                     routing_key='example',
                     body='This is my test message',
                     properties={'content_type': 'text/plain'})

And publisher confirms:

>>> rabbitpy.publish('amqp://guest:guest@localhost:5672/%2f',
                     exchange='test',
                     routing_key='example',
                     body='This is my test message',
                     properties={'content_type': 'text/plain'},
                     confirm=True)
True
>>>

Simple Getter

>>> m = rabbitpy.get('amqp://guest:guest@localhost:5672/%2f', 'test')
>>> m.json()
{u'foo': u'bar'}

Simple Consumer

>>> for message in rabbitpy.consume('amqp://guest:guest@localhost:5672/%2f', 'example', no_ack=True):
...     message.pprint(properties=True)
...
Properties:

{'app_id': '',
 'cluster_id': '',
 'content_encoding': '',
 'content_type': '',
 'correlation_id': '',
 'delivery_mode': None,
 'expiration': '',
 'headers': None,
 'message_id': 'b191f7f4-4e9d-4420-b18a-2ac8783ab3c5',
 'message_type': '',
 'priority': None,
 'reply_to': '',
 'timestamp': datetime.datetime(2013, 12, 18, 21, 48, 5),
 'user_id': ''}

Body:

'This is my test message'

More complex examples are available at https://rabbitpy.readthedocs.org

Version History

  • 0.12.0: Updated simple consumer to potential one-liner, added rabbitpy.Message.pprint()

  • 0.11.0: Major bugfix focused on receiving multiple AMQP frames at the same time. Add auto-coersion of property data-types.

  • 0.10.0: Rewrite of IO layer yielding improved performance and reduction of CPU usage, bugfixes

  • 0.9.0: Major performance improvements, CPU usage reduction, minor bug-fixes

  • 0.8.0: Major bugfixes, IPv6 support

  • 0.7.0: Bugfixes and code cleanup. Most notable fix around Basic.Return and recursion in Channel._wait_on_frame.

  • 0.6.0: Bugfix with Queue.get(), RPC requests expecting multiple responses and the new Queue.consume_messages() method.

  • 0.5.1: Installer/setup fix

  • 0.5.0: Bugfix release including low level socket sending fix and connection timeouts.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rabbitpy-0.12.1.tar.gz (30.5 kB view details)

Uploaded Source

File details

Details for the file rabbitpy-0.12.1.tar.gz.

File metadata

  • Download URL: rabbitpy-0.12.1.tar.gz
  • Upload date:
  • Size: 30.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for rabbitpy-0.12.1.tar.gz
Algorithm Hash digest
SHA256 da1b3f49f400670cc8c3e8057dc83b44eb8ef8edb7d3f6e5baf31d1fb427fefb
MD5 4fb3fad39b993a65afb5429d0dd19b0d
BLAKE2b-256 1a81214477c7d009311d04cd8690331eadf99889c1b57f97e9762d9e3b961300

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page