Persistent MQTT 5.0 client
Project description
ΩQTT
pron. "ohm cue tee tee" or "omega cutie"
A reliable and persistent MQTT 5.0 client library for Python.
Features
QoS and Persistence
ΩQTT supports publish and subscribing all QoS levels with optional persistence to disk for QoS >0. When not persisting QoS >0 messages, a fast (but volatile) in memory store is used. Either way, publishing a message returns a handle with a method to wait for the message to be fully acknowledged by the broker.
Connectivity
Connect to a remote broker with optional TLS over TCP over IPV4 or IPV6. Connect to a local broker with either TCP or Unix domain socket.
Properties
Access all optional properties of all MQTT control packet types. If you ever wanted to check the user properties of SUBACK and UNSUBACK (among others), welcome home.
Automatic Topic Alias
Set an alias policy when publishing a message and a topic alias will be generated, if allowed by the broker. If bandwidth is tight, set your QoS 0 publications to require a topic alias. In this case, an error will be raised if the server does not offer enough alias values.
Toolkit
ΩQTT is built on a toolkit for efficiently serializing MQTT control messages. Use it to build your own custom implementation, or to serialize your own payloads.
Portability
ΩQTT is tested on Linux, Windows and MacOS with CPython versions 3.10-3.13. It should work on any platform that CPython runs on.
Reliability
ΩQTT has been implemented to a high standard of test coverage and static analysis, from the beginning. It continues to improve.
Performance
Every drop of pure Python performance has been squeezed out of serialization and the event loop. You're not using Python because it's fast, but it can't hurt.
TODO for 0.1
- Auth
- Instructions
- Error handling and validation
- Refactor Session
TODO for 1.0
- E2E Tests
- Autodoc
- Publish automation
Development
This project uses nox and uv to run the tests against all supported Python versions.
To do all of this in a venv:
python3 -m venv .venv
source .venv/bin/activate
pip install nox uv
nox
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ohmqtt-0.0.3.tar.gz.
File metadata
- Download URL: ohmqtt-0.0.3.tar.gz
- Upload date:
- Size: 69.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0862474215482c06881c3c8c9f90645f2e0febbafbd6c300e0e8bc5818208ac6
|
|
| MD5 |
65aa94a5b7d737ba5188509d8e6d7004
|
|
| BLAKE2b-256 |
71dd3aa6ae1e12782d9db47906bc2a06cd9454d70398e2d33818a5696ac80c7a
|
Provenance
The following attestation bundles were made for ohmqtt-0.0.3.tar.gz:
Publisher:
pypi.yml on ohmqtt/ohmqtt_python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ohmqtt-0.0.3.tar.gz -
Subject digest:
0862474215482c06881c3c8c9f90645f2e0febbafbd6c300e0e8bc5818208ac6 - Sigstore transparency entry: 220044755
- Sigstore integration time:
-
Permalink:
ohmqtt/ohmqtt_python@1655171318258d51345fcedb5716a6c46ce3d703 -
Branch / Tag:
refs/tags/0.0.5 - Owner: https://github.com/ohmqtt
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@1655171318258d51345fcedb5716a6c46ce3d703 -
Trigger Event:
release
-
Statement type:
File details
Details for the file ohmqtt-0.0.3-py3-none-any.whl.
File metadata
- Download URL: ohmqtt-0.0.3-py3-none-any.whl
- Upload date:
- Size: 52.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ddfc8303b104565e7e5d97575410acc8d3518ce9c0b5ecd4762a35c05855a09e
|
|
| MD5 |
0487b2254c1263d2b11db7f776ba4d35
|
|
| BLAKE2b-256 |
7ce1b2bba3de02eb77e429478ca745c54cf8dc9cfd888e7aee517acea91aad90
|
Provenance
The following attestation bundles were made for ohmqtt-0.0.3-py3-none-any.whl:
Publisher:
pypi.yml on ohmqtt/ohmqtt_python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ohmqtt-0.0.3-py3-none-any.whl -
Subject digest:
ddfc8303b104565e7e5d97575410acc8d3518ce9c0b5ecd4762a35c05855a09e - Sigstore transparency entry: 220044756
- Sigstore integration time:
-
Permalink:
ohmqtt/ohmqtt_python@1655171318258d51345fcedb5716a6c46ce3d703 -
Branch / Tag:
refs/tags/0.0.5 - Owner: https://github.com/ohmqtt
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@1655171318258d51345fcedb5716a6c46ce3d703 -
Trigger Event:
release
-
Statement type: