Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ohmqtt-0.0.3.tar.gz (69.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ohmqtt-0.0.3-py3-none-any.whl (52.4 kB view details)

Uploaded Python 3

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

Hashes for ohmqtt-0.0.3.tar.gz
Algorithm Hash digest
SHA256 0862474215482c06881c3c8c9f90645f2e0febbafbd6c300e0e8bc5818208ac6
MD5 65aa94a5b7d737ba5188509d8e6d7004
BLAKE2b-256 71dd3aa6ae1e12782d9db47906bc2a06cd9454d70398e2d33818a5696ac80c7a

See more details on using hashes here.

Provenance

The following attestation bundles were made for ohmqtt-0.0.3.tar.gz:

Publisher: pypi.yml on ohmqtt/ohmqtt_python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for ohmqtt-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 ddfc8303b104565e7e5d97575410acc8d3518ce9c0b5ecd4762a35c05855a09e
MD5 0487b2254c1263d2b11db7f776ba4d35
BLAKE2b-256 7ce1b2bba3de02eb77e429478ca745c54cf8dc9cfd888e7aee517acea91aad90

See more details on using hashes here.

Provenance

The following attestation bundles were made for ohmqtt-0.0.3-py3-none-any.whl:

Publisher: pypi.yml on ohmqtt/ohmqtt_python

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