aMQTT is an open source MQTT client and broker implementation in python
 
 
 
 
 
 
Go to file
Andrew Mirsky d39bd2ec5c
adding support for python 3.10-3.12 in ci. fixing pylint errors
2025-05-17 14:22:32 -04:00
.github adding support for python 3.10-3.12 in ci. fixing pylint errors 2025-05-17 14:22:32 -04:00
amqtt adding support for python 3.10-3.12 in ci. fixing pylint errors 2025-05-17 14:22:32 -04:00
docs refactor: base cleanup and bring project to run with test cases 2024-12-19 20:34:09 +01:00
samples refactor: more cleanup/linting 2025-01-12 20:52:50 +01:00
scripts refactor: update base project confs 2025-04-04 21:06:41 +02:00
tests refactor: modularize broker listener startup and improve session management 2025-04-06 19:03:30 +02:00
.codecov.yml refactor: base cleanup and bring project to run with test cases 2024-12-19 20:34:09 +01:00
.coveragerc refactor: base cleanup and bring project to run with test cases 2024-12-19 20:34:09 +01:00
.gitattributes refactor: base cleanup and bring project to run with test cases 2024-12-19 20:34:09 +01:00
.gitignore merging up from 'origin/main' and resolving merge conflicts 2025-05-16 13:45:59 -04:00
.pre-commit-config.yaml refactor: update base project confs 2025-04-04 21:06:41 +02:00
.prettierrc.yml refactor: base cleanup and bring project to run with test cases 2024-12-19 20:34:09 +01:00
.yamllint refactor: base cleanup and bring project to run with test cases 2024-12-19 20:34:09 +01:00
CONTRIBUTING.md using 'typing_extensions' package and 'ImportError' fallbacks to support 3.10+ 2025-05-16 14:21:16 -04:00
LICENSE refactor: base cleanup and bring project to run with test cases 2024-12-19 20:34:09 +01:00
MANIFEST.in
README.rst Merge branch 'main' into beta4_to_rc1 2025-05-16 17:25:09 -04:00
SECURITY.md refactor: base cleanup and bring project to run with test cases 2024-12-19 20:34:09 +01:00
pyproject.toml lint and mypy cleanup and exceptions due to the need to support imports from different locations depending on python version 2025-05-17 14:06:37 -04:00
uv.lock Merge branch 'beta4_to_rc1' into add_python310_support 2025-05-16 17:34:01 -04:00

README.rst

|license| |ci| |coverage| |rtfm| |gitter| |python_versions| |python_wheel| |PyPI|

.. |license| image:: https://img.shields.io/github/license/Yakifo/amqtt?style=flat-square
    :target: https://amqtt.readthedocs.io/en/latest/
    :alt: MIT licensed

.. |ci| image:: https://img.shields.io/github/workflow/status/Yakifo/amqtt/Python%20package?style=flat-square
    :target: https://github.com/Yakifo/amqtt/actions/workflows/python-package.yml

.. |coverage| image:: https://img.shields.io/coveralls/github/Yakifo/amqtt?style=flat-square
    :target: https://coveralls.io/github/Yakifo/amqtt?branch=master

.. |rtfm| image:: https://img.shields.io/readthedocs/amqtt?style=flat-square
    :target: https://amqtt.readthedocs.io/en/latest/
    :alt: Documentation Status

.. |gitter| image:: https://img.shields.io/gitter/room/Yakifo/amqtt?style=flat-square
    :target: https://gitter.im/amqtt/community
    :alt: 'Join the chat at https://gitter.im/amqtt/community'

.. |python_versions| image:: https://img.shields.io/pypi/pyversions/amqtt?style=flat-square
    :alt: Python Version

.. |python_wheel| image:: https://img.shields.io/pypi/wheel/amqtt?style=flat-square
    :alt: supports python wheel

.. |PyPI| image:: https://img.shields.io/pypi/v/amqtt?style=flat-square
    :target: https://pypi.org/project/amqtt/
    :alt: PyPI


WORK IN PROGRESS.
=======
`!!! MAINTAINERS WANTED !!! <https://github.com/Yakifo/amqtt/issues/163>`_ 


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.


.. _asyncio: https://docs.python.org/3/library/asyncio.html
.. _HBMQTT: https://github.com/beerfactory/hbmqtt

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       | 3.7 - 3.10                 | No release   |
|          | and small API differences |                            | 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 https://github.com/Yakifo/amqtt/issues/133.
    Therefore only 3.7 is mentioned as supported version for 0.10.x.


Getting started
---------------

`amqtt` is available on `Pypi <https://pypi.python.org/pypi/amqtt>`_ 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`_.



.. _MQTT: http://www.mqtt.org
.. _MQTT 3.1.1: http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html
.. _Read the Docs: http://amqtt.readthedocs.org/
.. _open an issue: https://github.com/Yakifo/amqtt/issues/new
.. _gitter channel: https://gitter.im/amqtt/community