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)
Related projects
- 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)
| File | Size | Uploaded | |
|---|---|---|---|
| trio-paho-mqtt-up1-0.4.1.tar.gz | 7.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|