/distmqtt

An async MQTT broker and client, plus DistKV integration

Primary LanguagePythonMIT LicenseMIT

DistMQTT

DistMQTT is an open source MQTT client and broker implementation. It is a fork of hbmqtt with support for anyio and `DistKV`_.

DistMQTT provides a straightforward API based on coroutines, making it easy to write highly concurrent applications.

Features

DistMQTT implements the full set of MQTT 3.1.1 protocol specifications and provides the following features:

  • Support for QoS 0, QoS 1 and QoS 2 messages flows
  • Client auto-reconnection
  • Authentication via 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
  • Optional: Storage of retained messages in DistKV

Build status

https://travis-ci.org/smurfix/distmqtt.svg?branch=master https://coveralls.io/repos/smurfix/distmqtt/badge.svg?branch=master&service=github

Project status

Documentation Status

Getting started

distmqtt is available on Pypi and can installed simply using pip :

$ pip install distmqtt

Documentation is available on Read the Docs.

Bug reports, patches and suggestions welcome! Just open an issue.

'Join the chat at https://gitter.im/beerfactory/distmqtt'

DistMQTT? DistKV? DistWhatever?

DistMQTT is a stand-alone MQTT client and server.

DistKV is a distributed key-value storage system. It uses the DistMQTT client library as its connector to some MQTT server, preferably Mosquitto or some other low-latency broker.

A DistMQTT server can hook into DistKV so that some messages are persisted, translated (store True and False instead of "on" and "off"), filtered (e.g. the client can only modify existing messages but not add any), et al..