Skip to main content

Python bindings for mq-bridge (full: all brokers incl. Kafka)

Project description

mq-bridge Python bindings

Thin Python bindings for the Rust mq-bridge core.

Install

Pick exactly one distribution. Both install the same import path: mq_bridge.

Package Install Includes
Full pip install mq-bridge-py Basic set plus Kafka, AWS, gRPC, MongoDB, SQLx
Basic pip install mq-bridge-py-basic HTTP, NATS, MQTT, AMQP, WebSocket, ZeroMQ, middleware

Memory and file endpoints are always present in both packages. Use mq-bridge-py-basic when you want the lean all-platform wheel set. Use mq-bridge-py when you need Kafka or the heavier non-messaging backends.

The public API stays close to mq-bridge itself:

  • Route.from_yaml(path, name) loads one named route
  • Route.with_handler(...) attaches a raw Message handler, with lazy json()/text() readers and with_json()/with_payload() response helpers
  • Route.add_handler(kind, ...) uses mq-bridge's kind dispatch and delivers decoded JSON
  • RetryableError and NonRetryableError let Python handlers signal retry intent
  • Publisher.from_yaml(path, name) loads one named publisher
  • Publisher.send_json(...) and Publisher.request_json(...) serialize Python JSON values in Rust

The Python surface is synchronous and blocking. Tokio, broker I/O, routing, and batching all stay in Rust.

Local development

uv is a good fit here for the Python-side developer workflow, while maturin stays the build backend:

cd python/mq-bridge-py
uv sync --group dev --no-install-project
uv run maturin develop
uv run pytest -q

Performance smoke tests are skipped by default because they start routes and measure local throughput:

cd python/mq-bridge-py
MQ_BRIDGE_RUN_PERF_TESTS=1 uv run pytest -q -m performance

Examples

Raw message handler:

cd python/mq-bridge-py
uv run python examples/raw_route.py

Kind-based JSON handler:

cd python/mq-bridge-py
uv run python examples/json_route.py

Memory benchmark:

cd python/mq-bridge-py
uv run maturin develop --release
uv run python examples/bench_memory.py --messages 100000

Analysis

HTTP comparison benchmark, driven by a native load generator (wrk) so the client is never the bottleneck. It boots each server itself (mq-bridge in worker and direct executor modes, plus FastAPI, Starlette, Sanic, aiohttp, and FastStream when installed) and drives each with wrk:

cd python/mq-bridge-py
uv run maturin develop --release
uv sync --group bench   # optional Python HTTP peers
uv run python analysis/bench_http_native.py --connections 1,8,32 --duration 8

Requires wrk on PATH (brew install wrk). The FastStream target compares its ASGI custom-route path over Uvicorn; it is not a broker-backed subscriber/publisher benchmark. The examples use included sample configs or create temporary configs.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mq_bridge_py-0.2.19.tar.gz (712.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

mq_bridge_py-0.2.19-cp38-abi3-win_amd64.whl (23.6 MB view details)

Uploaded CPython 3.8+Windows x86-64

mq_bridge_py-0.2.19-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (23.6 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ x86-64

mq_bridge_py-0.2.19-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (22.4 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

mq_bridge_py-0.2.19-cp38-abi3-macosx_11_0_arm64.whl (21.2 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

mq_bridge_py-0.2.19-cp38-abi3-macosx_10_12_x86_64.whl (22.3 MB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

Details for the file mq_bridge_py-0.2.19.tar.gz.

File metadata

  • Download URL: mq_bridge_py-0.2.19.tar.gz
  • Upload date:
  • Size: 712.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mq_bridge_py-0.2.19.tar.gz
Algorithm Hash digest
SHA256 9e852993b725c4fd3d942975b48838490804ee45e8f0e9b046bd2df5455a81a5
MD5 74934ec369b02228634ffacf71055455
BLAKE2b-256 e54782a8dba12961ef46bf7fdfd97a8deae4b3aab7f8cc4bf77f6c5d162af516

See more details on using hashes here.

Provenance

The following attestation bundles were made for mq_bridge_py-0.2.19.tar.gz:

Publisher: publish-python.yml on marcomq/mq-bridge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mq_bridge_py-0.2.19-cp38-abi3-win_amd64.whl.

File metadata

  • Download URL: mq_bridge_py-0.2.19-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 23.6 MB
  • Tags: CPython 3.8+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mq_bridge_py-0.2.19-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 47e7fb8388dbf92a9c58e96ac3911cc5a9d74c121c266c68ad38f0606584c13e
MD5 5a03cbe47b0d3fcd4f6ffcf6aef9cd90
BLAKE2b-256 0691d80b438d5d892a334d6194f650d41ba1d93714da55eb325a8575d259cb2d

See more details on using hashes here.

Provenance

The following attestation bundles were made for mq_bridge_py-0.2.19-cp38-abi3-win_amd64.whl:

Publisher: publish-python.yml on marcomq/mq-bridge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mq_bridge_py-0.2.19-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mq_bridge_py-0.2.19-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f8af0517534fcce3cf1879fc2a85e788de38cbc36d943e6e3d2e00e276bdc385
MD5 848000d241264a4c33913c924c8494b7
BLAKE2b-256 5365e3b993d8fc7f172315b2c6b77555c0c86ac3d5505d8d8c2923952b1b1ab1

See more details on using hashes here.

Provenance

The following attestation bundles were made for mq_bridge_py-0.2.19-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-python.yml on marcomq/mq-bridge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mq_bridge_py-0.2.19-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for mq_bridge_py-0.2.19-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 970fa1dab94d2e3625f2e96aa7a73f58fc333afb33a21223795837b7669511d2
MD5 3d6988704078872cbd5e3a629fd83457
BLAKE2b-256 a814bacade82a80746681d3eb8f7a4d1a1540097dae434d0bbd012c95244247d

See more details on using hashes here.

Provenance

The following attestation bundles were made for mq_bridge_py-0.2.19-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-python.yml on marcomq/mq-bridge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mq_bridge_py-0.2.19-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mq_bridge_py-0.2.19-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cb5a6d19bec8c26ed8a4b56c18a2b84f95957e3bdfb6c46e61019c1b52a52825
MD5 7ff9cfb6a5d56bd170086f1db42e0ce6
BLAKE2b-256 32e126091165ddcbdcf02cb99220e231b8036c3ee87f7b979a6b7c5876910096

See more details on using hashes here.

Provenance

The following attestation bundles were made for mq_bridge_py-0.2.19-cp38-abi3-macosx_11_0_arm64.whl:

Publisher: publish-python.yml on marcomq/mq-bridge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mq_bridge_py-0.2.19-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for mq_bridge_py-0.2.19-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6ab0c4f490c1ffb1366b050db2d1b585e8983533889bfb9928ad091503ab0f78
MD5 64183f10c30545d2bd2df0754babdd41
BLAKE2b-256 64d2a01c51468e6179321e19752118e5590e53f6e1f2bd2aabf6eb4e075d4fce

See more details on using hashes here.

Provenance

The following attestation bundles were made for mq_bridge_py-0.2.19-cp38-abi3-macosx_10_12_x86_64.whl:

Publisher: publish-python.yml on marcomq/mq-bridge

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page