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

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

Built distribution (wheel)

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

Total release size: 397.2 kB

Release files / rabbitmq_amqp_python_client-2.0.0a3.tar.gz

Download URL rabbitmq_amqp_python_client-2.0.0a3.tar.gz
Size 289.7 kB
Tags Source
SHA-256 checksum
How to use checksums
d3bf1efcffddc8b68b89c2b26a92c055795fa548a0388af8e50cd573fa3109f9
BLAKE2b-256 checksum
How to use checksums
f63673c5b8450bd2446d682640fba06506a73b942b38c968b84d9ac54faac399
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.0a3-py3-none-any.whl

Download URL rabbitmq_amqp_python_client-2.0.0a3-py3-none-any.whl
Size 107.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0418db77249f86f8dfbddb7830b8bd1f5bbf424c6a31b0abece10879756cc8f4
BLAKE2b-256 checksum
How to use checksums
4183b1d5cb56a4e2f02e3b7a48b7d8f0cacb7db992ed2f520bc025ef2bb029a3
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