Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

RabbitMQ AMQP 1.0 Python version 2.x

RabbitMQ AMQP 1.0 Python client version 2.x for RabbitMQ 4.x.

This client version built from scratch.
The primary reason for this rewrite is to remove the dependency on the qpid-proton C library present in version 1.0, providing a fully native Python client, see here. This client is inspired by the Java and .NET AMQP 1.0 clients, aiming to deliver the same behavior and user experience across ecosystems.

The client is different from 1.0 and not compatible, so read the documentation before updating the client.

Install

The client is distributed via PIP:

 pip install rabbitmq-amqp-python-client==2.0.0ax

Build from source

python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

This repository's own sandbox could not reach PyPI, so its .venv was created with python3 -m venv --system-site-packages .venv to pick up an already installed ruff/mypy/pytest, and the examples are run with PYTHONPATH=. (the project root) instead of an editable install. That is an environment quirk, not a project requirement — with the editable install above, import rabbitmq_amqp_python_client just works from anywhere.

Quick start

from rabbitmq_amqp_python_client import Connection, ConnectionParameters, Context, Message

connection = Connection(ConnectionParameters())  # localhost:5672, guest/guest
try:
    connection.management().queue("my-queue").declare()

    def handle(context: Context, message: Message) -> None:
        print("received", message.body_as_string())
        context.accept()

    consumer = connection.consumer_builder().queue("my-queue").message_handler(handle).build()
    publisher = connection.publisher_builder().queue("my-queue").build()

    result = publisher.publish(Message("hello"))
    print("published:", result.outcome.state.value)  # -> accepted

    publisher.close()
    consumer.close()
    connection.management().queue("my-queue").delete()
finally:
    connection.close()

Examples

docs/examples/README.md catalogues thirteen runnable scripts, in reading order — from basic_connection.py through publishing and consuming to auto-reconnection, presettled consumers, direct reply-to, rejection reasons, single-active-consumer notifications, stream filtering and TLS/certificate-based authentication. Each one talks to a local broker:

PYTHONPATH=. .venv/bin/python docs/examples/basic_connection.py

Development

make install          # create .venv and install the package with its dev extras
make format           # ruff format, then ruff check --fix
make lint             # ruff check and ruff format --check
make typecheck        # mypy rabbitmq_amqp_python_client, in strict mode
make test-unit        # the unit suite; no broker needed
make test-integration # the integration suite; needs a broker on localhost:5672
make test             # both suites

The example scripts are type-checked too:

MYPYPATH=. .venv/bin/python -m mypy docs/examples/*.py

Project layout

rabbitmq_amqp_python_client/ holds the client: wire/ is the protocol layer (type codec, frames, performatives, messages, SASL) and knows nothing above itself, and connection.py, session.py, link.py, management.py, publisher.py, consumer.py and reconnection.py build the public API on top of it. tests/unit covers each of those against an in-process fake broker and needs no network; tests/integration runs the same surface against a real broker and is marked integration. docs/examples/ holds the runnable scripts the specifications ask for.

Metadata

Release files for rabbitmq-amqp-python-client 2.0.0b1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rabbitmq-amqp-python-client 2.0.0b1
File Size Uploaded
rabbitmq_amqp_python_client-2.0.0b1.tar.gz 301.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for rabbitmq-amqp-python-client 2.0.0b1
File Interpreter ABI Platform
rabbitmq_amqp_python_client-2.0.0b1-py3-none-any.whl Python 3 none any Details

Total release size: 410.3 kB

Release files / rabbitmq_amqp_python_client-2.0.0b1.tar.gz

Download URL rabbitmq_amqp_python_client-2.0.0b1.tar.gz
Size 301.8 kB
Tags Source
SHA-256 checksum
How to use checksums
4f8ed9454b902bc5432b3d78ecdadfdaca2e252be0c0509b30baf7950d1cb360
BLAKE2b-256 checksum
How to use checksums
edf9dc4369caa301d7e91ae3ab76d6fa4c8250399fb7d292e629139228397659
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / rabbitmq_amqp_python_client-2.0.0b1-py3-none-any.whl

Download URL rabbitmq_amqp_python_client-2.0.0b1-py3-none-any.whl
Size 108.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
832659123c6e5f3987197ad54acfe440bb2d5b6be7c5e745f37184292b578fef
BLAKE2b-256 checksum
How to use checksums
9125af4ac4812248778a695fea384af82fcc94979ea365a7cb1cfe94639e6900
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page