.. image:: https://img.shields.io/badge/chat-join%20now-blue.svg
:target: https://gitter.im/python-trio/general
:alt: Join chatroom
.. image:: https://img.shields.io/badge/docs-read%20now-blue.svg
:target: https://async_amqp.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
.. image:: https://travis-ci.org/python-trio/async_amqp.svg?branch=master
:target: https://travis-ci.org/python-trio/async_amqp
:alt: Automated test status
.. image:: https://codecov.io/gh/python-trio/async_amqp/branch/master/graph/badge.svg
:target: https://codecov.io/gh/python-trio/async_amqp
:alt: Test coverage
async_amqp
==========
The ``async_amqp`` library is a pure-Python implementation of the `AMQP 0.9.1 protocol`_.
Built on top of anyio_, it provides an API based on coroutines, making it easy to write highly concurrent applications.
Bug reports, patches and suggestions welcome! Just open an issue_ or send a `pull request`_.
Status
------
The code works. Porting code that uses aioamqp (or even plain
python-amqp) should be reasonably straightforward.
All tests from aioamqp have been ported and succeed.
`async_amqp` was renamed from `asyncamqp`, but that was taken on pypi. `asyncamqp`
was renamed from `trio_amqp` but anyio support was deemed to be a good
idea. `trio_amqp` in turn was forked from `aioamqp`.
tests
-----
To run the tests, you'll need to install the Python test dependencies::
pip install -r ci/requirements_dev.txt
Tests require an instance of RabbitMQ. You can start a new instance using docker::
docker run -d --log-driver=syslog -e RABBITMQ_NODENAME=my-rabbit --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management
RabbitMQ requires a "guest" user (password "guest") with admin privileges.
You can run the tests with ``make test`` (requires ``pytest``).
tests using docker-compose
^^^^^^^^^^^^^^^^^^^^^^^^^^
Start RabbitMQ using ``docker-compose up -d rabbitmq``. When RabbitMQ has started, start the tests using ``docker-compose up --build aioamqp-test``
Future work
-----------
* Add coverage reporting. Increase coverage (duh).
* Try restarting a failed AMQP connection instead of cancelling everything.
.. _AMQP 0.9.1 protocol: https://www.rabbitmq.com/amqp-0-9-1-quickref.html
.. _Trio: https://github.com/python-trio/trio
.. _anyio: https://github.com/agronholm/anyio
.. _issue: https://github.com/python-trio/async_amqp/issues/new
.. _pull request: https://github.com/python-trio/async_amqp/compare/
Raw data
{
"_id": null,
"home_page": "https://github.com/python-trio/async_amqp",
"name": "async-amqp",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "asyncio,amqp,rabbitmq,aio,trio",
"author": "Matthias Urlichs",
"author_email": "matthias@urlichs.de",
"download_url": "https://files.pythonhosted.org/packages/74/40/ee5526ac7ddd879f2d85850342e8e3b3cb32b4310460e4338b8f5e700823/async_amqp-0.5.5.tar.gz",
"platform": "all",
"description": ".. image:: https://img.shields.io/badge/chat-join%20now-blue.svg\n :target: https://gitter.im/python-trio/general\n :alt: Join chatroom\n\n.. image:: https://img.shields.io/badge/docs-read%20now-blue.svg\n :target: https://async_amqp.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n.. image:: https://travis-ci.org/python-trio/async_amqp.svg?branch=master\n :target: https://travis-ci.org/python-trio/async_amqp\n :alt: Automated test status\n\n.. image:: https://codecov.io/gh/python-trio/async_amqp/branch/master/graph/badge.svg\n :target: https://codecov.io/gh/python-trio/async_amqp\n :alt: Test coverage\n\nasync_amqp\n==========\n\nThe ``async_amqp`` library is a pure-Python implementation of the `AMQP 0.9.1 protocol`_.\n\nBuilt on top of anyio_, it provides an API based on coroutines, making it easy to write highly concurrent applications.\n\nBug reports, patches and suggestions welcome! Just open an issue_ or send a `pull request`_.\n\nStatus\n------\n\nThe code works. Porting code that uses aioamqp (or even plain\npython-amqp) should be reasonably straightforward.\n\nAll tests from aioamqp have been ported and succeed.\n\n`async_amqp` was renamed from `asyncamqp`, but that was taken on pypi. `asyncamqp`\nwas renamed from `trio_amqp` but anyio support was deemed to be a good\nidea. `trio_amqp` in turn was forked from `aioamqp`.\n\n\ntests\n-----\n\nTo run the tests, you'll need to install the Python test dependencies::\n\n pip install -r ci/requirements_dev.txt\n\nTests require an instance of RabbitMQ. You can start a new instance using docker::\n\n docker run -d --log-driver=syslog -e RABBITMQ_NODENAME=my-rabbit --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management\n\nRabbitMQ requires a \"guest\" user (password \"guest\") with admin privileges.\n\nYou can run the tests with ``make test`` (requires ``pytest``).\n\n\ntests using docker-compose\n^^^^^^^^^^^^^^^^^^^^^^^^^^\nStart RabbitMQ using ``docker-compose up -d rabbitmq``. When RabbitMQ has started, start the tests using ``docker-compose up --build aioamqp-test``\n\n\nFuture work\n-----------\n\n* Add coverage reporting. Increase coverage (duh).\n\n* Try restarting a failed AMQP connection instead of cancelling everything.\n\n.. _AMQP 0.9.1 protocol: https://www.rabbitmq.com/amqp-0-9-1-quickref.html\n.. _Trio: https://github.com/python-trio/trio\n.. _anyio: https://github.com/agronholm/anyio\n.. _issue: https://github.com/python-trio/async_amqp/issues/new\n.. _pull request: https://github.com/python-trio/async_amqp/compare/\n",
"bugtrack_url": null,
"license": "BSD",
"summary": "AMQP implementation using anyio",
"version": "0.5.5",
"project_urls": {
"Homepage": "https://github.com/python-trio/async_amqp"
},
"split_keywords": [
"asyncio",
"amqp",
"rabbitmq",
"aio",
"trio"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "233781c27a4b73dc2808fad2839573506a74bd23b687adbd1d3965fc0a841734",
"md5": "2824c3a530e3ee6e592f5f75e96d0ba0",
"sha256": "19cb55f27cd2104b343563f697c5a2e5ff56f9d4a4f6ad7a9a5151426b526126"
},
"downloads": -1,
"filename": "async_amqp-0.5.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2824c3a530e3ee6e592f5f75e96d0ba0",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 21248,
"upload_time": "2023-12-21T14:19:43",
"upload_time_iso_8601": "2023-12-21T14:19:43.392047Z",
"url": "https://files.pythonhosted.org/packages/23/37/81c27a4b73dc2808fad2839573506a74bd23b687adbd1d3965fc0a841734/async_amqp-0.5.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7440ee5526ac7ddd879f2d85850342e8e3b3cb32b4310460e4338b8f5e700823",
"md5": "4cf2ea123a3d12829aed50e55cafab14",
"sha256": "d47840fcec3b5994fe570151c2bd2096d25714bec99fc949c814a088be6f713d"
},
"downloads": -1,
"filename": "async_amqp-0.5.5.tar.gz",
"has_sig": false,
"md5_digest": "4cf2ea123a3d12829aed50e55cafab14",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 54724,
"upload_time": "2023-12-21T14:19:44",
"upload_time_iso_8601": "2023-12-21T14:19:44.748683Z",
"url": "https://files.pythonhosted.org/packages/74/40/ee5526ac7ddd879f2d85850342e8e3b3cb32b4310460e4338b8f5e700823/async_amqp-0.5.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-21 14:19:44",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "python-trio",
"github_project": "async_amqp",
"github_not_found": true,
"lcname": "async-amqp"
}