Web: | https://amqpy.readthedocs.org/ |
---|---|
Source: | https://github.com/veegee/amqpy |
Keywords: | amqp, rabbitmq, qpid |
amqpy is a pure-Python AMQP 0.9.1 client library for Python 2 >= 2.7.0 and Python 3 >= 3.2.0 (including PyPy and PyPy3) with a focus on:
- stability and reliability
- well-tested and thoroughly documented code
- clean, correct design
- 100% compliance with the AMQP 0.9.1 protocol specification
It has very good performance, as AMQP 0.9.1 is a very efficient binary protocol, but does not sacrifice clean design and testability to save a few extra CPU cycles.
This library is actively maintained and has a zero bug policy. Please submit issues and pull requests, and bugs will be fixed immediately.
This library makes the following guarantees:
- Semantic versioning is strictly followed
- Compatible with Python >= 2.7.0 and PyPy
- Compatible with Python >= 3.2.0 and PyPy3 >= 2.3.1 (Python 3.2.5)
- AMQP 0.9.1 compliant
- Draining events from multiple channels:
Connection.drain_events()
- SSL is fully supported, it is highly recommended to use SSL when connecting to servers over the Internet.
- Support for timeouts
- Support for manual and automatic heartbeats
- Fully thread-safe. Use one global connection and open one channel per thread.
Supports RabbitMQ extensions:
- Publisher confirms: enable with
Channel.confirm_select()
, then useChannel.basic_publish_confirm()
- Exchange to exchange bindings:
Channel.exchange_bind()
andChannel.exchange_unbind()
- Consumer Cancel Notifications: by default a cancel results in
ChannelError
being raised, but not if aon_cancel
callback is passed tobasic_consume