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, providing a fully native Python client. 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.

Installation

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.0a2

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.0a2
File Size Uploaded
rabbitmq_amqp_python_client-2.0.0a2.tar.gz 277.1 kB Details

Built distribution (wheel)

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

Total release size: 381.1 kB

Release files / rabbitmq_amqp_python_client-2.0.0a2.tar.gz

Download URL rabbitmq_amqp_python_client-2.0.0a2.tar.gz
Size 277.1 kB
Tags Source
SHA-256 checksum
How to use checksums
494515b46f255ec72c8e669013a5b73b69398dc51135f0c13a68fa4336ac9da1
BLAKE2b-256 checksum
How to use checksums
db156bb3cf7564fba1eb488a608101fc36c5726da1bd03a519f82d9b1796013f
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.0a2-py3-none-any.whl

Download URL rabbitmq_amqp_python_client-2.0.0a2-py3-none-any.whl
Size 104.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6678f837f01836082264a7f1e3925958aca0c5929cbf81cb959aeea8c3d45f9e
BLAKE2b-256 checksum
How to use checksums
33e7528d76ee2e88c58ac0caf7d06a0c57b2d0d48091179f26f2a547e22feea9
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