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.18.tar.gz (705.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_basic-0.2.18-cp38-abi3-win_amd64.whl (7.8 MB view details)

Uploaded CPython 3.8+Windows x86-64

mq_bridge_py_basic-0.2.18-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (7.7 MB view details)

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

mq_bridge_py_basic-0.2.18-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (7.5 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

mq_bridge_py_basic-0.2.18-cp38-abi3-macosx_11_0_arm64.whl (7.1 MB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

mq_bridge_py_basic-0.2.18-cp38-abi3-macosx_10_12_x86_64.whl (7.4 MB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: mq_bridge_py_basic-0.2.18.tar.gz
  • Upload date:
  • Size: 705.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_basic-0.2.18.tar.gz
Algorithm Hash digest
SHA256 56bf4682194e2330a626527909a1fb667454d663d6b0e354ccd50d8ff6edd6c0
MD5 c55f7968af6b0938fbc3ebac5534ac08
BLAKE2b-256 052fd5f78580afdf3b11c20345e14373731ce67e8ddb1715d9521f69d471ec8a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mq_bridge_py_basic-0.2.18-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 09eb9df2ec3bb4a96d1348bee066db8164dcd8e378faff9f31ac465080413577
MD5 a55fcc26e334f11cba7bec8cde3269a3
BLAKE2b-256 ba11a30a7c8f1525f2a299e7f5478b2882bf1de2763cac9ff8466abe885a0c98

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mq_bridge_py_basic-0.2.18-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c6825c46c0afddb2f772771fccb62b18c4d76bee60e3860f6c3d907363901622
MD5 51cb8cabd48ab49363379696bb222524
BLAKE2b-256 c008040f6c10d470eb549ace9546890649874f52411a6d8f559f3986c2d89f1d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mq_bridge_py_basic-0.2.18-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 629abc9029edd2ba517514d446836a62e6bff4bb83e892f1d9b906d600296959
MD5 844ba474e2543a317f79b75f70ab4534
BLAKE2b-256 9a12952331ba0b1c94714b8675c15ace388aa98f892ac0554b310aef97ee2851

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mq_bridge_py_basic-0.2.18-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d6d4c30905dfd735a3461aafded5a0812535866d5e16cac0ddcda18389dec06b
MD5 fd4fd10b7e97527d930e277075128430
BLAKE2b-256 c9e533b40112c7d8f6e4e03df2b4d3202cb2443ea8bc939ffd1f1cca25e80405

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for mq_bridge_py_basic-0.2.18-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 81e322d557e680b1a35a91f26aa6c0181831e7aeb04d5b937b93bddfe1b2746b
MD5 96120ed7917cb15f0d00e70db54f0944
BLAKE2b-256 f5bdc0fa761b576f713b4af423fb5c8ea88e77831044cd77dd61f94e07ffef4d

See more details on using hashes here.

Provenance

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