aMQTT is an open source MQTT client and broker implementation in python
 
 
 
 
 
 
Go to file
Andrew Mirsky a0b5d29aea
simplifying the gitignore file so that it is easier to identify what is / isn't included
2025-05-29 13:31:38 -04:00
.github Merge pull request #167 from ajmirsky/add_python310_support 2025-05-29 13:16:25 -04:00
amqtt Merge branch 'rc' into rebase/106 2025-05-29 13:22:40 -04:00
docs reapplying any remaining stack traces to logging messages that weren't already included in other updates 2025-05-26 11:27:42 -04:00
samples reapplying any remaining stack traces to logging messages that weren't already included in other updates 2025-05-26 11:27:42 -04:00
scripts refactor: update base project confs 2025-04-04 21:06:41 +02:00
tests disabling color output 2025-05-20 12:43:39 -04:00
.codecov.yml
.coveragerc
.gitattributes
.gitignore simplifying the gitignore file so that it is easier to identify what is / isn't included 2025-05-29 13:31:38 -04:00
.pre-commit-config.yaml refactor: update pre-commit versions 2025-05-17 17:55:13 +02:00
.prettierrc.yml
.yamllint
CONTRIBUTING.md fixing typo 2025-05-19 12:54:00 -04:00
LICENSE
MANIFEST.in
README.rst refactor: Update README.rst 2025-05-17 17:50:46 +02:00
SECURITY.md
pyproject.toml typer uses a syntax that disagrees with B008, added lint bypass for this case 2025-05-19 13:15:22 -04:00
uv.lock replacing amqtt subscriber's use of 'docopts' with 'typer' 2025-05-18 13:19:04 -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