DistMQTT
is an open source MQTT client and broker implementation. It
is a fork of hbmqtt with support for anyio and `DistKV`_.
DistMQTT provides a straightforward API based on coroutines, making it easy to write highly concurrent applications.
DistMQTT implements the full set of MQTT 3.1.1 protocol specifications and provides the following features:
- Support for QoS 0, QoS 1 and QoS 2 messages flows
- Client auto-reconnection
- Authentication via password file (more methods can be added through a plugin system)
- Basic
$SYS
topics - TCP and websocket support
- SSL support over TCP and websocket
- Plugin system
- Optional: Storage of retained messages in DistKV
distmqtt is available on Pypi and can installed simply using pip
:
$ pip install distmqtt
Documentation is available on Read the Docs.
Bug reports, patches and suggestions welcome! Just open an issue.
DistMQTT is a stand-alone MQTT client and server.
DistKV is a distributed key-value storage system. It uses the DistMQTT client library as its connector to some MQTT server, preferably Mosquitto or some other low-latency broker.
A DistMQTT server can hook into DistKV so that some messages are persisted, translated (store True and False instead of "on" and "off"), filtered (e.g. the client can only modify existing messages but not add any), et al..