Breaking:Queue now defaults to durable=True. RabbitMQ 4.3 rejects transient non-exclusive queues. Pass durable=False with exclusive=True for a transient queue.
3.0.0 — 2024-05-08
Change to use ssl.SSLContext since ssl.wrap_socket was deprecated in Python 3.7 and removed in 3.12
Drops support for Python < 3.8
Adds support for Python 3.10, 3.11, and 3.12
Change tests over to use coverage instead of nose
2.0.1 — 2019-08-06
Fixed an issue with the IO loop poller on MacOS (#111)
2.0.0 — 2019-04-19
Updated to use pamqp>=2.3,<3:
Field table keys are now strings and no longer bytes
In Python 2.7 if a short-string has UTF-8 characters, it will be a unicode object
Field-table integer encoding changes
Drops support for Python < 3.4
Adds support for Python 3.6 and 3.7
1.0.0 — 2016-10-27
Reworked Heartbeat logic to send a heartbeat every interval / 2 seconds when data has not been written to the socket (#70, #74, #98, #99)
Improved performance when consuming large messages (#104) — Jelle Aalbers
Allow for username and password to be default again (#96, #97) — Grzegorz Śliwiński
Cleanup of Connection and Channel teardown (#103)
0.27.1 — 2016-05-12
Fix a bug where the IO write trigger socketpair is not being cleaned up on close
0.27.0 — 2016-05-11
Added new SimpleChannel class
Exception formatting changes
Thread locking optimizations
Connection shutdown cleanup
Message now assigns a UTC timestamp instead of local timestamp if requested (#94)
Unquote username and password in URI (#93) — sunbit
Connections now allow for a configurable timeout (#84, #85) — vmarkovtsev
Bugfix for basic_publish (#92) — canardleteer
Added args property to Connection (#88) — vmarkovtsev
Fix locale in connection setup from causing hanging (#87) — vmarkovtsev
Fix heartbeat behavior (#69, #70, #74)
Cancel consuming in case of exceptions (#68) — kmelnikov
Documentation correction (#79) — jonahbull
0.26.2 — 2015-03-17
Fix behavior for Basic.Return frames sent from RabbitMQ
Pin pamqp 1.6.1 fixing an issue with max-channels
0.26.1 — 2015-03-09
Add the ability to interrupt rabbitpy when waiting on a frame (#38)
Use a custom base class for all Exceptions (#57) — Jeremy Tillman
Fix for consumer example in documentation (#60) — Michael Becker
Add rabbitpy.amqp module for unopinionated access to AMQP API
Refactor how client side heartbeat checking is managed
Address an issue when client side channel max count is not set
Clean up handling of remote channel and connection closing
Fix URI query parameter names to match AMQP URI spec
PYPY behavior fixes related to garbage collection
0.25.0 — 2014-12-16
Acquire a lock when creating a new channel to fix multi-threaded channel creation (#56)
Add client side heartbeat checking (#55)
Fix a bug where Basic.Nack checking was checking for the wrong string
Add support for Python3 memoryviews for the message body (#50)
Improve Python3 behavior in maybe_utf8_encode
0.24.0 — 2014-12-12
Update to reflect changes in pamqp 1.6.0
0.23.0 — 2014-11-05
Fix a bug where message body length was assigned before converting unicode to bytes (#49)
Fix the automatic coercion of header types to UTF-8 encoded bytes (#49)
Raise TypeError if a timestamp property cannot be converted
0.22.0 — 2014-11-04
Address an issue when RabbitMQ is configured with a max-frame-size of 0 (#48)
Do not lose the traceback when exiting a context manager due to an exception (#46)
Adds server capability checking in Channel methods
Pin pamqp version range to >= 1.4, < 2.0
0.21.1 — 2014-10-23
Clean up KQueue issues (#44)
Remove sockets from KQueue when in error state
Handle socket connect errors more cleanly (#44)
0.21.0 — 2014-10-21
Address a possible edge case where message frames can be interspersed when publishing in a multi-threaded environment
Add exception handling around select.error (#43)
Add a new opinionated flag in Message construction
Add wheel distribution
0.20.0 — 2014-10-01
Added support for KQueue and Poll in IOLoop
Fixed issues with publishing large messages (#37)
Add exchange property to Message (#40)
Add out-of-band consumer cancellation with Queue.stop_consuming() (#38, #39)
Significantly increase test coverage
Earlier Releases
0.19.0 — Fix the socket read/write buffer size (#35)
0.18.1 — Fix unicode message body encoding in Python 2
0.18.0 — Make IO thread daemonic; add Message.redelivered property
0.17.0 — Refactor cross-thread communication for RabbitMQ invoked RPC methods
0.16.0 — Fix an issue with no_ack=True consumer cancellation; fix exchange and queue unbinding
0.15.0 — Change default durability for Exchange and Queue to False
0.14.0 — Add support for authentication_failure_close; add consumer priorities