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.

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

Requirements

aMQTT is built on Python’s asyncio. It requires Python 3.6 or newer.

Installation

It is not recommended to install third-party library in Python system packages directory. The preferred way for installing aMQTT is to create a virtual environment and then install all the dependencies you need. Refer to PEP 405 to learn more.

Once you have a environment setup and ready, aMQTT can be installed with the following command

(venv) $ pip install amqtt

pip will download and install aMQTT and all its dependencies.

User guide

If you need aMQTT for running a MQTT client or deploying a MQTT broker, the Quickstart describes how to use console scripts provided by aMQTT.

If you want to develop an application which needs to connect to a MQTT broker, the MQTTClient API documentation explains how to use aMQTT API for connecting, publishing and subscribing with a MQTT broker.

If you want to run you own MQTT broker, th Broker API reference reference documentation explains how to embed a MQTT broker inside a Python application.

News and updates are listed in the Changelog.