aMQTT is an open source MQTT client and broker implementation in python
Go to file
Ryan Parry-Jones 08028ebef8 Update amqtt/mqtt/protocol/handler.py
Co-authored-by: not-f-elsner <123899677+not-f-elsner@users.noreply.github.com>
2023-02-27 18:52:11 +01:00
.github/workflows Fixup python compatibility declaration 2023-02-09 13:49:38 +01:00
amqtt Update amqtt/mqtt/protocol/handler.py 2023-02-27 18:52:11 +01:00
docs release 0.10.0-beta 2023-02-09 14:16:20 +01:00
samples rename hbmqtt to amqtt in samples/ 2021-03-27 17:49:55 +01:00
tests #126 2023-02-27 18:52:11 +01:00
.flake8 move flake9 config into separate file and ignore all style checks 2022-02-06 14:42:51 +01:00
.gitignore add contributing.md and .pre-commit-config.yaml 2021-03-17 10:27:56 +01:00
.pre-commit-config.yaml run pre-commit on all files 2022-04-17 12:28:23 +02:00
MANIFEST.in tox and travis are not used anymore 2021-03-13 18:28:01 +01:00
contributing.md Fix executable names 2022-03-28 00:05:09 +02:00
license.txt consistent aMQTT spelling 2021-04-04 11:07:53 +02:00
poetry.lock unit testing tcp connection to the broker 2023-02-11 15:53:06 +01:00
pyproject.toml move psutil to dev dependencies 2023-02-11 15:53:13 +01:00
readme.rst Fixup python compatibility declaration 2023-02-09 13:49:38 +01: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


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