| Version: | 2.3.1 | 
|---|---|
| Web: | https://amqp.readthedocs.io/ | 
| Download: | https://pypi.org/project/amqp/ | 
| Source: | http://github.com/celery/py-amqp/ | 
| Keywords: | amqp, rabbitmq | 
This is a fork of amqplib which was originally written by Barry Pederson. It is maintained by the Celery project, and used by kombu as a pure python alternative when librabbitmq is not available.
This library should be API compatible with librabbitmq.
Differences from amqplib
Supports draining events from multiple channels (
Connection.drain_events)Support for timeouts
Channels are restored after channel error, instead of having to close the connection.
Support for heartbeats
Connection.heartbeat_tick(rate=2)must called at regular intervals (half of the heartbeat value if rate is 2).- Or some other scheme by using 
Connection.send_heartbeat. 
- Supports RabbitMQ extensions:
 - Consumer Cancel Notifications
 - by default a cancel results in 
ChannelErrorbeing raised - but not if a 
on_cancelcallback is passed tobasic_consume. 
- by default a cancel results in 
 
- Publisher confirms
 Channel.confirm_select()enables publisher confirms.Channel.events['basic_ack'].append(my_callback)adds a callback to be called when a message is confirmed. This callback is then called with the signature(delivery_tag, multiple).
- Exchange-to-exchange bindings: 
exchange_bind/exchange_unbind. Channel.confirm_select()enables publisher confirms.Channel.events['basic_ack'].append(my_callback)adds a callback to be called when a message is confirmed. This callback is then called with the signature(delivery_tag, multiple).
- Exchange-to-exchange bindings: 
 - Authentication Failure Notifications
 - Instead of just closing the connection abruptly on invalid
credentials, py-amqp will raise an 
AccessRefusederror when connected to rabbitmq-server 3.2.0 or greater. 
Support for
basic_return- Uses AMQP 0-9-1 instead of 0-8.
 Channel.access_requestandticketarguments to methods removed.- Supports the 
argumentsargument tobasic_consume. internalargument toexchange_declareremoved.auto_deleteargument toexchange_declaredeprecatedinsistargument toConnectionremoved.Channel.alertshas been removed.- Support for 
Channel.basic_recover_async. Channel.basic_recoverdeprecated.
- Exceptions renamed to have idiomatic names:
 AMQPException->AMQPErrorAMQPConnectionException-> ConnectionError``AMQPChannelException-> ChannelError``Connection.known_hostsremoved.Connectionno longer supports redirects.exchangeargument toqueue_bindcan now be empty to use the "default exchange".
Adds
Connection.is_alivethat tries to detect whether the connection can still be used.Adds
Connection.connection_errorsand.channel_errors, a list of recoverable errors.Exposes the underlying socket as
Connection.sock.Adds
Channel.no_ack_consumersto keep track of consumer tags that set the no_ack flag.Slightly better at error recovery
Differences between AMQP 0.8 and 0.9.1
AMQP 0.9.1 Quick Reference
RabbitMQ Extensions
For more information about AMQP, visit
For other Python client libraries see:
