{"id":13936668,"url":"https://github.com/eandersson/amqpstorm","last_synced_at":"2025-04-12T23:32:56.429Z","repository":{"id":19912609,"uuid":"23178253","full_name":"eandersson/amqpstorm","owner":"eandersson","description":"Thread-safe Python RabbitMQ Client \u0026 Management library","archived":false,"fork":false,"pushed_at":"2025-03-03T14:24:51.000Z","size":1030,"stargazers_count":190,"open_issues_count":10,"forks_count":37,"subscribers_count":18,"default_branch":"2.x","last_synced_at":"2025-04-04T02:51:12.469Z","etag":null,"topics":["amqp","amqp0-9-1","amqpstorm","communication-library","internet","library","python","python2","python3","rabbitmq","rabbitmq-client","rabbitmq-management","rabbitmq-python","rabbitmq-server"],"latest_commit_sha":null,"homepage":"https://amqpstorm.readthedocs.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eandersson.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"eandersson"}},"created_at":"2014-08-21T07:32:19.000Z","updated_at":"2025-03-28T10:05:41.000Z","dependencies_parsed_at":"2023-11-07T13:39:38.907Z","dependency_job_id":"3669e95f-d5b3-473b-83be-091e3c388bae","html_url":"https://github.com/eandersson/amqpstorm","commit_stats":{"total_commits":523,"total_committers":16,"mean_commits":32.6875,"dds":"0.31739961759082214","last_synced_commit":"5092e93ce71a05ff2d36ea8ea643f60b29383c0f"},"previous_names":[],"tags_count":54,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eandersson%2Famqpstorm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eandersson%2Famqpstorm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eandersson%2Famqpstorm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eandersson%2Famqpstorm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eandersson","download_url":"https://codeload.github.com/eandersson/amqpstorm/tar.gz/refs/heads/2.x","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248647257,"owners_count":21139081,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["amqp","amqp0-9-1","amqpstorm","communication-library","internet","library","python","python2","python3","rabbitmq","rabbitmq-client","rabbitmq-management","rabbitmq-python","rabbitmq-server"],"created_at":"2024-08-07T23:02:53.997Z","updated_at":"2025-04-12T23:32:56.421Z","avatar_url":"https://github.com/eandersson.png","language":"Python","funding_links":["https://github.com/sponsors/eandersson"],"categories":["Python"],"sub_categories":[],"readme":"AMQPStorm\n=========\nThread-safe Python RabbitMQ Client \u0026 Management library.\n\n|Version|\n\nIntroduction\n============\nAMQPStorm is a library designed to be consistent, stable and thread-safe.\n\n- 100% Test Coverage!\n- Supports Python 2.7 and Python 3.6+.\n- Fully tested against Python Implementations; CPython and PyPy.\n\nChangelog\n=========\n\nVersion 2.11.1\n--------------\n- Switch back to using select.select by default [#140].\n\nVersion 2.11.0\n--------------\n- Added Python 3.13 support.\n- Replaced select.select with select.poll on Linux by default.\n- Replaced list with collections.deque - Thanks Bernhard Thiel.\n- Removed unnecessary lock when building messages.\n- Fixed various Python 2.7 tests.\n\nVersion 2.10.8\n--------------\n- Fixed bug with multi-threaded basic.consume not always being threadsafe [#132] - Thanks mic1on.\n\nVersion 2.10.7\n--------------\n- Fixed bug with heartbeat interval on the client not sent frequently enough [#127] - Thanks Ivan Héda.\n- Added support for Python 3.12.\n\nVersion 2.10.6\n--------------\n- Fixed deprecated warning when using Python 3.11.\n\nVersion 2.10.5\n--------------\n- Added support for bulk removing users using the Management Api.\n- Added support to get the Cluster name using the Management Api.\n- Fixed ConnectionUri to default to port 5761 when using ssl [#119] - Thanks s-at-ik.\n\nVersion 2.10.4\n--------------\n- Fixed issue with a forcefully closed channel not sending the appropriate response [#114] - Thanks Bernd Höhl.\n\nVersion 2.10.3\n--------------\n- Fixed install bug with cp1250 encoding on Windows [#112] - Thanks ZygusPatryk.\n\nVersion 2.10.2\n--------------\n- Fixed bad socket fd causing high cpu usage [#110] - Thanks aiden0z.\n\nVersion 2.10.1\n--------------\n- Fixed bug with UriConnection not handling amqps:// properly.\n- Improved documentation.\n\nVersion 2.10.0\n--------------\n- Added Pagination support to Management list calls (e.g. queues list).\n- Added Filtering support to Management list calls.\n- Re-use the requests sessions for Management calls.\n- Updated to use pytest framework instead of nose for testing.\n\nVersion 2.9.0\n-------------\n- Added support for custom Message implementations - Thanks Jay Hogg.\n- Fixed a bug with confirm_delivery not working after closing and re-opening an existing channel.\n- Re-worked the channel re-use code.\n\nVersion 2.8.5\n-------------\n- Fixed a potential deadlock when opening a channel with a broken connection [#97] - Thanks mehdigmira.\n\nVersion 2.8.4\n-------------\n- Fixed a bug in Message.create where it would mutate the properties dict [#92] - Thanks Killerama.\n\nVersion 2.8.3\n-------------\n- Fixed pip sdist circular dependency [#88] - Thanks Jay Hogg.\n- Fixed basic.consume argument type in documentation [#86] - Thanks TechmarkDavid.\n\nVersion 2.8.2\n-------------\n- Retry on SSLWantReadErrors [#82] - Thanks Bernhard Thiel.\n- Added getter/setter methods for Message properties expiration, message_type and user_id [#86] - Thanks Jay Hogg.\n\nVersion 2.8.1\n-------------\n- Cleaned up documentation.\n\nVersion 2.8.0\n-------------\n- Introduced a new channel function called check_for_exceptions.\n- Fixed issue where publish was successful but raises an error because connection was closed [#80] - Thanks Pavol Plaskon.\n- Updated SSL handling to use the non-deprecated way of creating a SSL Connection [#79] - Thanks Carl Hörberg from CloudAMQP.\n- Enabled SNI for SSL connections by default [#79] - Thanks Carl Hörberg from CloudAMQP.\n\nVersion 2.7.2\n-------------\n- Added ability to override client_properties [#77] - Thanks tkram01.\n\nVersion 2.7.1\n-------------\n- Fixed Connection close taking longer than intended when using SSL [#75]- Thanks troglas.\n- Fixed an issue with closing Channels taking too long after the server initiated it.\n\nVersion 2.7.0\n-------------\n- Added support for passing your own ssl context [#71] - Thanks troglas.\n- Improved logging verbosity on connection failures [#72] - Thanks troglas.\n- Fixed occasional error message when closing a SSL connection [#68] - Thanks troglas.\n\nVersion 2.6.2\n-------------\n- Set default TCP Timeout to 10s on UriConnection to match Connection [#67] - Thanks josemonteiro.\n- Internal RPC Timeout for Opening and Closing Connections are now set to a fixed 30s [#67] - Thanks josemonteiro.\n\nVersion 2.6.1\n-------------\n- Fixed minor issue with the last channel id not being available.\n\nVersion 2.6.0\n-------------\n- Re-use closed channel ids [#55] - Thanks mikemrm.\n- Changed Poller Timeout to be a constant.\n- Improved Connection Close performance.\n- Channels is now a publicly available variable in Connections.\n\nVersion 2.5.0\n-------------\n- Upgraded pamqp to v2.0.0.\n    - Python 3 keys will now always be of type str.\n    - For more information see https://pamqp.readthedocs.io/en/latest/history.html\n- Properly wait until the inbound queue is empty when break_on_empty is set [#63] - Thanks TomGudman.\n- Fixed issue with Management queue/exchange declare when the passive flag was set to True.\n\nCredits\n=======\nSpecial thanks to gmr (Gavin M. Roy) for creating pamqp, and in addition amqpstorm is heavily influenced by his pika and rabbitpy libraries.\n\n.. |Version| image:: https://badge.fury.io/py/AMQPStorm.svg\n  :target: https://badge.fury.io/py/AMQPStorm\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feandersson%2Famqpstorm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feandersson%2Famqpstorm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feandersson%2Famqpstorm/lists"}