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.17.tar.gz (701.8 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.17-cp38-abi3-win_amd64.whl (23.4 MB view details)

Uploaded CPython 3.8+Windows x86-64

mq_bridge_py-0.2.17-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (23.5 MB view details)

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

mq_bridge_py-0.2.17-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (22.3 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

mq_bridge_py-0.2.17-cp38-abi3-macosx_11_0_arm64.whl (21.1 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

mq_bridge_py-0.2.17-cp38-abi3-macosx_10_12_x86_64.whl (22.2 MB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: mq_bridge_py-0.2.17.tar.gz
  • Upload date:
  • Size: 701.8 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.17.tar.gz
Algorithm Hash digest
SHA256 005d3f4910afeaeeed53d0305697557f896b053061454f188e4fe3340961a67b
MD5 431d8ed26a50478ff41c15513a6705ce
BLAKE2b-256 f535f88dacb6d558b5a9ffdf95f2c260a457bbc525ee08ccc6bf2213f7282cd9

See more details on using hashes here.

Provenance

The following attestation bundles were made for mq_bridge_py-0.2.17.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.17-cp38-abi3-win_amd64.whl.

File metadata

  • Download URL: mq_bridge_py-0.2.17-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 23.4 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.17-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 8c7753e54bd90956c816bfbc7c7596fb854fa1499bbf33158e91dd7359ce2b2e
MD5 366552bf79c7fb0f41ed2dc3ff8cbe14
BLAKE2b-256 31804900cf7e93c9adc123f4d2a1e1b930f2bfa87daaf6928d92b4a50c80f558

See more details on using hashes here.

Provenance

The following attestation bundles were made for mq_bridge_py-0.2.17-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.17-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for mq_bridge_py-0.2.17-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 88680e121717d1e2cb7b0d505f59a817f7b08686ade749b6f505a7c4350b3530
MD5 2c403631b9b1bb5910424d2465d2630e
BLAKE2b-256 b59ef4bfeb6ec6ddb5ca3e0a367ffd3f44cec629a648baaf2e152de05c8611c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for mq_bridge_py-0.2.17-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.17-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for mq_bridge_py-0.2.17-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 140fb570512e85058d79a3bb5bbd9a55e2ff822062db3a383d43111977d48eb1
MD5 c07da8447192c2b6cecbafa5b86454d8
BLAKE2b-256 11ad2fb28aa4ac853fb057bd901a2d754a28cf2947831e0b63cfdcf53541264f

See more details on using hashes here.

Provenance

The following attestation bundles were made for mq_bridge_py-0.2.17-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.17-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for mq_bridge_py-0.2.17-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e9e28eac8680c150d140c2863d4dc7d304dd170c85676bbb86ac28849cd17705
MD5 025717dafeecda636b7e8b7f3fe3091a
BLAKE2b-256 deaede66a2a7e368ddce6f8514e88a6b56e881a349a4928d9c05cbcca61058b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for mq_bridge_py-0.2.17-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.17-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for mq_bridge_py-0.2.17-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 bfb9e6d27ade90fad3b55fd9501a47389f0bca19f3e465d7319608a63e0a44d3
MD5 5d5fd9729fd4ba3204d97601a4bb98fe
BLAKE2b-256 8050cd7bbe75622f0adefa01f3cb2c8c9f2d776df168a5792d123fea0785a100

See more details on using hashes here.

Provenance

The following attestation bundles were made for mq_bridge_py-0.2.17-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