aMQTT
is an open source MQTT client and broker implementation.
Built on top of asyncio, Python's standard asynchronous I/O framework, aMQTT provides a straightforward API based on coroutines, making it easy to write highly concurrent applications.
It was forked from HBMQTT after it was deprecated by the original author.
aMQTT implements the full set of MQTT 3.1.1 protocol specifications and provides the following features:
- Support QoS 0, QoS 1 and QoS 2 messages flow
- Client auto-reconnection on network lost
- Authentication through 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
The current focus is to build setup the project infrastructure for the new fork. From there the goal is to fix outstanding known issues and clean up the code.
Version | hbmqtt compatibility | Supported Python Versions | PyPi Release |
0.10.x | YES - Drop-in Replacement | 3.7* | 0.10.1 |
0.11.x | NO - Module renamed and small API differences | 3.7 - 3.10 | No release yet |
- Due to a change in Python 3.8 where the semantics of asyncio.CancelledError was changed
- to be a subclass of BaseException instead of Exception, old versions of hbmqtt and aMQTT will break, see #133. Therefore only 3.7 is mentioned as supported version for 0.10.x.
amqtt is available on Pypi and can installed simply using pip
:
$ pip install amqtt
Documentation is available on Read the Docs.
Bug reports, patches and suggestions welcome! Just open an issue or join the gitter channel.