Skip to main content

Python bindings for mq-bridge (basic: all-platform messaging set)

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_basic-0.2.17.tar.gz (701.9 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_basic-0.2.17-cp38-abi3-win_amd64.whl (7.7 MB view details)

Uploaded CPython 3.8+Windows x86-64

mq_bridge_py_basic-0.2.17-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.6 MB view details)

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

mq_bridge_py_basic-0.2.17-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (7.4 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

mq_bridge_py_basic-0.2.17-cp38-abi3-macosx_11_0_arm64.whl (7.0 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

mq_bridge_py_basic-0.2.17-cp38-abi3-macosx_10_12_x86_64.whl (7.3 MB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: mq_bridge_py_basic-0.2.17.tar.gz
  • Upload date:
  • Size: 701.9 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_basic-0.2.17.tar.gz
Algorithm Hash digest
SHA256 1b08c6568711fbdb0f898a913f1453a2efdcb3c33f2177b44423d88a08edb6ae
MD5 4895b06262d4a578718515c14285fbfc
BLAKE2b-256 7ea0770046f6637a9dd0565d7cf5e1a7c266ea439689549884848d46bb4d0a56

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mq_bridge_py_basic-0.2.17-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 9be879bc1eaa2d2bdc2f0ec511c1d369ec9d51df877f2936011fce55ccf4c323
MD5 cb080366ca02784aa6925c234e937dc9
BLAKE2b-256 5f89fe89bd0ddcf1a12086ad646c8a1e369336a949e5619b3494b949067fd0ee

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mq_bridge_py_basic-0.2.17-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cecbaedda8a8a9a90a497838a9484070338f58e893060f9db0c0c05fb6601c84
MD5 035af89364f742f798e0e7266e1d9f68
BLAKE2b-256 f1a2742fc02e1cdd3cc82c56e31891a9b86038bb0dcc3731ee07780c575e0da8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mq_bridge_py_basic-0.2.17-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b62f24fecd23251e07f626c09928fbffb30e3d033bba1b6a8b1ee1cbc84c4ba0
MD5 8322bd7a82ba9b8f905f73f32b908814
BLAKE2b-256 e9314d8580d10c2153c504843dc5dd55d51c3cfa62db7ff6f57fe6be9a6dc1f7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mq_bridge_py_basic-0.2.17-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c23e3103028423eb014a47d4e8c3629be151838a94524d942e378f806675c42c
MD5 751cd304d25b779ad847cc299bf8ef2f
BLAKE2b-256 c80dc34ed3136aa7294d79b8477f26afe1e9f6ffc447bc80066bf8d19c919c66

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mq_bridge_py_basic-0.2.17-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 32f564225ad2702da5d9372c3d06e94e42dbbcc90b64af34669a1c2caa4a65cd
MD5 228716ec3a83122f7ba5507207e9490d
BLAKE2b-256 97318e18542ac3a959738f9e99cd0f3e4e174da0b36d95b0a8f3d6eb0105bf97

See more details on using hashes here.

Provenance

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