Skip to main content

trio_paho_mqtt

trio specific async MQTT client. The goal of this project is to have all the MQTT protocol stuff handled by paho-mqtt, while the async loopy stuff is handled by trio. This keeps our MQTT communication async, without having to shove paho-mqtt into a thread, and without having to reimplement the MQTT protocol.

All callbacks are also removed to be more trio-like. Messages are accessed through an async for loop.

This is meant to be a light-as-possible wrapper around paho-mqtt. That way if something goes wrong with MQTT message parsing, it's not my fault ;-)

Usage

First, see the example.py and paho-mqtt documentation. The goal is to expose all the same methods as the paho-mqtt Client. If any methods (besides callbacks) are missing or do something unexpected, this is a bug. Please open an issue.

AsyncClient is initialized with a sync mqtt.Client and a trio.Nursery but then otherwise should operate much like the sync Client. Methods are not coroutines, they are non-blocking functions, so you do not need to call await. The only exception is accessing messages through async for.

Example

Please see example.py for a working example! (example in README removed because it was not working)

  • gmqtt - Uses asyncio and callbacks. Isn't compatible with trio.
  • hbmqtt - Uses asyncio. Reimplements the MQTT protocol.
  • aiomqtt - Uses asyncio and wraps paho, but still uses the loop from paho-mqtt. I believe all operations are put into a worker thread.
  • distmqtt - anyio-ified hbmqtt fork. Works with trio.
  • asyncio-mqtt - Same idea as this lib (a light wrapper for paho mqtt), but for asyncio.

Metadata

Release files for trio-paho-mqtt-up1 0.4.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for trio-paho-mqtt-up1 0.4.1
File Size Uploaded
trio-paho-mqtt-up1-0.4.1.tar.gz 7.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for trio-paho-mqtt-up1 0.4.1
File Interpreter ABI Platform
trio_paho_mqtt_up1-0.4.1-py3-none-any.whl Python 3 none any Details

Total release size: 15.9 kB

Release files / trio-paho-mqtt-up1-0.4.1.tar.gz

Download URL trio-paho-mqtt-up1-0.4.1.tar.gz
Size 7.8 kB
Tags Source
SHA-256 checksum
How to use checksums
e8cd708dd2cde39679f669579668b21929b1308d618324dcf8fa903cdebb535d
BLAKE2b-256 checksum
How to use checksums
7b788e789ca04f5a009ab2670c4e0b1a1364b8a8a33fe548fa7abea7380bcf62
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.2.0b2 CPython/3.10.4 Linux/5.17.0-1015-oem

Release files / trio_paho_mqtt_up1-0.4.1-py3-none-any.whl

Download URL trio_paho_mqtt_up1-0.4.1-py3-none-any.whl
Size 8.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3ce568585dc96fef57a60898cb7022bb3a20cf0b0a8c82731b5b377d45893ed8
BLAKE2b-256 checksum
How to use checksums
3d6e99b59ac713cad32fb81671103e2b8cb047a600b9509d1970fef8cf894622
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.2.0b2 CPython/3.10.4 Linux/5.17.0-1015-oem

Release history Release notifications | RSS feed

This release

0.4.1 This release

2 release files

0.4.0

2 release files

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