MQTT client/broker using Python asyncio


License
MIT
Install
pip install amqtt==0.11.0b1

Documentation

MIT licensed ci coverage Documentation Status 'Join the chat at https://gitter.im/amqtt/community' Python Version supports python wheel PyPI

aMQTT

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.

Features

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

Project Status and Roadmap

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.

Getting started

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.