Awesome MQTT
A curated list of MQTT related stuff.
MQTT is a lightweight client-server publish/subscribe messaging protocol,
optimized for high-latency or unreliable networks. This protocol is a good
choice for Internet of Things applications, Telemetry, Sensor Networks,
Smart Metering, Home Automation, Messaging and Notification Services.
Contents
Blogs
Talks
Broker
-
Ably - MQTT broker
service and protocol adapter
-
ActiveMQ - A fast Java
multiprotocol messaging and Integration Patterns server.
-
Aedes - Barebone MQTT
broker that can run on any stream server, the node way.
-
Emitter - A
distributed, scalable and fault-tolerant publish-subscribe messaging
platform based on MQTT protocol and featuring message storage.
-
EMQ X - Scalable and Reliable
Real-time MQTT Messaging Engine for IoT in 5G Era.
-
esp_uMQTT_broker -
A basic MQTT Broker on the ESP8266.
-
hbmqtt - Python MQTT
broker using asyncio.
-
HiveMQ - Java MQTT Broker that
supports MQTT 3.1, 3.1.1 and 5.0. Commercial and open source editions
available.
-
hrotti - A MQTT broker
written in Go.
-
KMQTT - Kotlin
Multiplatform MQTT broker, both embeddable and standalone.
-
Moquette - Java
MQTT lightweight broker.
-
Mosca - Mosca is a node.js MQTT
broker, which can be used Standalone or Embedded in another Node.js
application.
-
Mosquitto - "The"** Open
Source MQTT Broker.
- MyQttHub - Cloud MQTT broker.
-
Mystique -
An extendable MQTT broker written in Go, with HTTP capabilities for
observability. Implements MQTT v3.1.1.
-
RabbitMQ - RabbitMQ
offers a MQTT Adapter.
-
SurgeMQ - High
Performance MQTT Server and Client Libraries in Go.
-
VerneMQ - an Apache2 licensed
distributed MQTT broker, developed in Erlang.
-
Vert.x MQTT - Vert.x
component to handle connections, communication and messages exchange
with remote MQTT clients.
-
Waterstream - MQTT broker
leveraging Apache Kafka as its own storage and distribution engine.
Cloud
-
Adafruit IO - Adafruit IO is the
easiest way to connect your project to the internet. You can easily
connect your project to Adafruit IO with your device-of-choice by using
your programming language of choice (we have lots of libraries) and
control or monitor over the internet. Data stored with Adafruit IO is
yours to manage and control.
-
Alibaba Cloud IoT Platform
- Provides secure and reliable communication between devices and the IoT
Platform which allows you to manage a large number of devices on a
single IoT Platform.
-
AWS IoT Core -
AWS IoT Core is a managed cloud service that lets connected devices
easily and securely interact with cloud applications and other devices.
AWS IoT Core can support billions of devices and trillions of messages,
and can process and route those messages to AWS endpoints and to other
devices reliably and securely. With AWS IoT Core, your applications can
keep track of and communicate with all your devices, all the time, even
when they aren’t connected.
-
Azure IoT Hub
- Enable highly secure and reliable communication between your IoT
application and the devices it manages. Azure IoT Hub provides a
cloud-hosted solution backend to connect virtually any device. Extend
your solution from the cloud to the edge with per-device authentication,
built-in device management, and scaled provisioning.
-
CloudMQTT - Hosted message
broker for the Internet of Things. Perfectly configured and optimized
message queues for IoT, ready in seconds.
-
EMQ X MQTT Cloud - A secure,
reliable MQTT cloud service with best pratices from EMQ team.
-
flespi - Free and secure
cloud MQTT broker with private namespaces, MQTT 3.1.1 and MQTT 5.0
support and gorgeous limits.
-
Google Cloud IoT -
Google Cloud IoT is a complete set of tools to connect, process, store,
and analyze data both at the edge and in the cloud. The platform
consists of scalable, fully-managed cloud services; an integrated
software stack for edge/on-premises computing with machine learning
capabilities for all your IoT needs.
-
HiveMQ Cloud - HiveMQ Cloud
is a fully managed MQTT platform that connects IoT devices to any IoT
cloud platform. A cloud native IoT messaging platform that simplifies
reliable and scalable IoT device connectivity.
-
IBM WATSON - With Watson, you
can bring AI tools and apps to your data wherever it resides – whether
it’s on IBM Cloud, AWS, Azure, Google, or your own private cloud
platform.
-
mainflux - device management,
data aggregation, data management, data analytics,connectivity and
message routing and event management. Supported by Linux Software
Foundation. Core analytics
-
thingsboard - Device management,
data collection, processing, event management, and visualization for
your IoT projects.
-
hivemq-mqtt-web-client
- Browser-based MQTT client that utilizes MQTT over websockets.
Direct Link
-
imqtt - Interactive
MQTT packet manipulation shell based on IPython.
-
IoT-Testware
- The Eclipse IoT-Testware is a collection of conformance test suites
for IoT protocols enriched with additional tools for fuzzing and
performance testing.
-
moxy - A Golang MQTT
proxy providing useful output traces to monitor and troubleshoot your
MQTT communications.
-
MQTT Board -
Open-source diagnostic-oriented MQTT client tool.
-
mqtt-admin -
Web based MQTT frontend.
Direct Link.
-
mqtt-benchmark -
A benchmarking tool for MQTT Servers.
-
MQTT CLI - A command
line interface for connecting various MQTT clients supporting MQTT 5.0
and 3.1.1.
-
mqtt-client - A
Simple MQTT Client command line (Python) (use paho lib)
-
mqtt-forget -
Command line tool to remove retained MQTT topics by wildcard.
-
mqtt-fuzz - A simple
fuzzer for the MQTT protocol.
-
mqtt-malaria -
scalability and load testing utilities for MQTT environments.
-
mqtt-mirror - Mirror
MQTT traffic from one broker to another. Available as a CLI tool, helm
chart or docker image.
-
MQTT-PWN
- MQTT-PWN intends to be a one-stop-shop for IoT Broker
penetration-testing and security assessment operations.
-
mqtt_recorder -
Simple cli tool for recording and replaying MQTT messages.
-
mqtt-shell -
A simple interactive shell for MQTT.
-
mqtt-spy - Java based
MQTT frontend. Supports scripting.
-
mqtt_tree -
Displays all Topics in an expandable tree, helps to get an overview if
you have a lot of clients publishing. (python, tkinter)
-
mqtt-utils - A
collection of MQTT utilities.
-
mqtt-wall -
Subscription only web-based client – like Twitter wall for MQTT.
-
mqtt-wildcard
- Node.js Module to match a MQTT Topic against wildcards.
-
MQTT.fx - MQTT.fx is a MQTT
Client written in Java based on Eclipse Paho. Supports scripting.
-
mqttcli - MQTT Client
for shell scripting.
-
MQTTInspector - A
general MQTT testing app for iOS (iPhone and iPad).
-
MQTTLens
- A Google Chrome application, which connects to a MQTT broker and is
able to subscribe and publish to MQTT topics.
-
MQTT Explorer - Tool to
visualize your MQTT topics in a topic hierarchy, a MQTT swiss-army
knife.
-
MQTT TUI - Simple
lightweight terminal based MQTT monitor and publisher.
-
Python MQTT Client Shell
- a text console-based, interactive shell for exercising various tasks
associated with MQTT client communications.
-
SimpleMQTT - A Slack app to
send messages from Slack to MQTT brokers with slash commands.
-
Wireshark-MQTT
- MQTT dissector for Wireshark.
-
VSMQTT - Simple MQTT
client integrated in Visual Studio Code.
-
MQTTX - MQTTX is a
cross-platform MQTT desktop client open sourced by EMQ, which supports
macOS, Linux, and Windows.
-
MQTT-Tiles -
MQTT-based IoT dashboard visualization tool. Allows easy dashboards
sharing. Works with any MQTT broker supporting the WSS protocol.
Clients
-
aiomqtt - Async
Python MQTT client based on paho-mqtt.
-
CocoaMQTT - MQTT for iOS
and OS X written with Swift.
-
emqttc - Asynchronous Erlang
MQTT Client.
-
gmqtt - Python MQTT v5.0
client (asyncio-based).
-
hbmqtt - Python MQTT
client using asyncio.
-
hivemq-mqtt-client
- High-performance Java MQTT client library with different API flavours
for MQTT 5.0 and 3.1.1.
-
Hulaaki - An Elixir
library for clients communicating with MQTT brokers.
-
luamqtt - Pure-lua MQTT
v3.1.1 and v5.0 client.
-
Machine Head
- A Clojure MQTT Client.
-
MiniMQTT
- MQTT Client Library for CircuitPython
-
MIMIC MQTT Simulator
- Simulate up to 100,000 MQTT clients per server for
development/testing/deployment of IoT applications.
-
Moscapsule -
MQTT Client for iOS written in Swift.
-
Mosquitto-PHP - A
wrapper for the Mosquitto MQTT client library for PHP.
-
mqtt_cpp - MQTT
client for C++14 based on Boost.Asio.
-
mqtt_lua - MQTT
Client library for the Lua language.
-
MQTT-C - A portable
MQTT C client for embedded systems and PCs alike.
-
MQTT-Client-Framework
- iOS, OSX, tvOS native ObjectiveC MQTT Client Framework.
-
mqtt-client - A
Polymer Web Component that implements a MQTT client (uses Paho
mqttws31.js).
-
mqtt-elements -
Polymer elements for MQTT.
-
mqtt-rs - MQTT
protocol library for Rust.
-
mqtt-stats -
Subscriber client to monitor MQTT Topic Statistics
-
mqtt-wrapper
- Polymer Element that wraps other Elements and links them to MQTT
topics.
-
mqtt.dart - Dart
MQTT client.
-
MQTT.js - MQTT client for
Node.js.
-
mqtt - MQTT Clients,
Servers and Load Testers in Go.
-
mqttex - MQTT
implementation in Elixir.
-
MQTTKit -
MQTT Objective-C client for iOS.
-
Paho - Open source client
implementations (C/C++, Java, Python, Javascript, Go, C#).
-
pubsubclient - A
client library for the Arduino Ethernet Shield that provides support for
MQTT.
-
ruby-mqtt - Pure Ruby gem
that implements the MQTT protocol.
-
rumqtt - A fast,
lock free pure Rust MQTT client.
-
tcl-mqtt - Small
library to connect to a MQTT broker. Very, very basic.
-
TMQTTClient - MQTT
Client Library for Delphi.
-
Vert.x MQTT - Vert.x
component that provides methods for connecting/disconnecting to a
broker, publishing messages and subscribing to topics.
-
wolfMQTT - A
client implementation of the MQTT written in C for embedded use. It
supports SSL/TLS via the wolfSSL library.
-
MQTTnet - MQTT client
and broker implementations in .NET.
Scripting
-
logic4mqtt - Java
based Logic and scripting engine for use with MQTT. Uses Java’s general
scripting interface, so scripts can be written in a multitude of
languages like Javascript, Groovy etc.
-
mqtt-scripts
- Node.js based script runner.
-
Node-RED - A visual tool for wiring
the Internet of Things.
Interfaces
Makers
-
arduinoTemps2mqtt
- Arduino sketch, grab One-wire Temperature’s and publish to a MQTT
broker.
-
Basecamp - An
Arduino library to ease the use of the ESP32 in IoT projects. See
c’t Magazin 2’2018 (German).
-
deskmate - A hackable
& portable MQTT-powered mini dashboard and control center.
-
MySensors - Arduino NRF24L01
based sensor network with support for an MQTT gateway
-
pubsubclient - A
client library for the Arduino Ethernet Shield that provides support for
MQTT.
-
RFM69-MQTT-client
- Arduino RFM69 based sensors and MQTT gateway.
-
rpi2mqtt - Connect
a RaspberryPis GPIOs and 1-Wire Temperature Sensors to MQTT.
-
xbee2mqtt - XBee to
MQTT gateway.
ESP
-
ESP32-BLE2MQTT
- BLE to MQTT bridge, exposes BLE GATT characteristics as MQTT topics
for bidirectional communication.
-
ESP8266MQTTMesh
- MQTT over mesh WiFi integrated library for ESP8266
-
esp_mqtt - MQTT client
library for ESP8266.
-
mqtt-ir-transceiver
- ESP8266 based bidirectional gateway between MQTT and IR. Use with
PlatformIO.
-
mqtt-with-micropython
- Connect to MQTT with micropython and wipy/others (ESP32 inside)
-
nodemcu-gpiomqtt
- Lua script to connect ESP8266 GPIOs to MQTT.
Firmwares for ESP based Devices
There are many inexpensive smart home Wi-Fi devices based on inexpensive
ESP8266 chip
(see: 1,
2,
3). Most of them can be reflashed with custom firmware. Here are complete
firmwares to turn them into MQTT-controlled smart home nodes:
-
ESPEasy
- Turns ESP into a multifunction sensor device for
HA solutions with web-based
configuration.
-
ESPHome - builds ESP8266/ESP32
firmware from concise YAML descriptions, uploads to and manages flashed
devices.
-
Espurna -
HA firmware for ESP8266-based
devices with rich web UI and ≈120 devices supported out of the box
-
OpenMQTTGateway
- MQTT gateway for ESP8266, ESP32, Sonoff RF Bridge or Arduino with
bidirectional 433mhz/315mhz/868mhz, Infrared communications, BLE,
beacons detection, mi flora, mi jia, LYWSD02, LYWSD03MMC, Mi Scale
compatibility, SMS & LORA.
-
Sonoff-Tasmota -
Firmware for ESP8266 devices with web-based configuration. ≈500 devices
supported (not only Sonoffs).
-
WiFi-IoT - ESP8266/ESP32
firmware builder. Partly in Russian. Free features are limited.
Industry
-
CODESYS-MQTT
- A MQTT client for CODESYS PLC
-
spicierModbus2mqtt
- Modbus master which publishes register values via MQTT.
-
mqtt2opcua - Bi
Directional MQTT to OPCUA Bridge.
-
OPC Router
- MQTT Gateway (publisher/subscriber) with various plug-ins (OPC UA
Bridge, SQL Bridge, REST Bridge, SAP Bridge)
Telephony, PBX
-
agi-mqtt - Interface
between Asterisk and MQTT.
-
fritz2mqtt -
Connect FRITZ!Box to MQTT.
-
sip2mqtt - A SIP
monitoring script that publishes incoming calls with CallerID to MQTT.
-
sms2mqtt - Docker
Gateway to send/receive SMS through MQTT using an USB GSM dongle
(gammu).
Operating System
-
mqtt-os-status
- Operating-system related data, published to an MQTT broker at fixed
intervals.
-
mqttlauncher -
Execute shell commands triggered by published MQTT messages.
-
mqttpc - Control
processes via MQTT. Ability to send signals via MQTT and to publish
stdout/stderr or pipe MQTT payloads into stdin.
-
mqttwatchdir -
Recursively watch a directory for modifications and publish file content
to an MQTT broker.
-
psmqtt - Utility
reporting system health and status via MQTT.
-
WinThing - Remotely
control Windows through MQTT.
Monitoring
-
check-mqtt - A
Nagios/Icinga plugin for checking connectivity to an MQTT broker.
-
nag2mqtt - Nagios event
broker to MQTT gateway.
-
notify-by-mqtt -
A Nagios/Icinga notification module which wraps data into JSON and fires
it off to an MQTT broker.
-
mqtt2notifysend
- Subscribe to a topic and show notifications from MQTT messages on
Ubuntu & other notify-send compatible Linux distros.
Location tracking
-
OwnTracks - Location tracking and
geofencing for MQTT.
Logging
Smart Home Hardware Interfaces
-
aqara-mqtt -
Aqara (Xiaomi) Gateway to MQTT bridge.
-
aqara2mqtt -
Attach Aqara Smart
Hubs to MQTT.
-
[can2mqtt] (https://github.com/c3re/can2mqtt) - CAN-Bus - MQTT Bridge
(also works vice versa).
-
cul2mqtt -
Interface between
Busware CUL
(868MHz RF-Devices like ELV FS20, HMS, EM, …) and MQTT.
-
domiqtt - Connects to a
Domiq Base (LCN) and translate from and to MQTT.
-
eno2mqtt - Interface
between an Enocean USB300 (TCM310) adapter and MQTT.
-
Evohome2mqtt -
MQTT Interface for the Honeywell Evohome system.
-
helios2mqtt - A
daemon for syncing a helios easy controls system like my KWL EC 220D to
MQTT.
-
hm2mqtt.js -
Interface between EQ-3’s Homematic line of smarthome devices and MQTT.
Supports Homematic IP.
-
homeeToMqtt -
Bidirectional Interface between homee and MQTT.
-
HS100toMQTT -
Gateway between TPLink HS100/HS110 and MQTT.
-
ipcam2mqtt - A small
FTP server to receive movement images from ipcameras and turn them into
MQTT alerts.
-
knx-mqtt-bridge
- ridges KNX and MQTT using the knx.js library.
-
knx2mqtt - Interface
between the KNX home automation standard and MQTT.
-
mcsMQTT
- Plug-in for HS3 (HomeSeer).
-
mqtt-dss-bridge
- MQTT digitalSTROM-Server Bridge.
-
mqtt-unifi-protect-bridge
- Adding motion-status from UniFi Protect Cameras to MQTT.
-
mqtt2homekit -
Roughly the opposite of
homekit2mqtt:
Control your HomeKit-enabled devices with MQTT and without Siri or
iPhone.
-
node-lox-mqtt-gateway
- Gateway for Loxone™ mini server to communicate with MQTT broker.
-
smartthings-mqtt-bridge
- Bridge between
SmartThings and MQTT.
-
xiaomi2mqtt -
bridge between the Xiaomi Smart Home Gateway Aquara and a MQTT server.
-
zigbee2mqtt - Allows
you to use your Zigbee devices without the vendors (Xiaomi/TRADFRI/Hue)
bridge/gateway.
Smart Home Integration Software
Lighting
Home Entertainment
-
airtunes2mqtt
- MQTT controlled Multi-Room Audio with Airplay/Airtunes Devices.
-
bravia2mqtt -
Control your Sony Bravia TV with MQTT.
-
broadlink-mqtt -
MQTT client to control BroadLink RM devices.
-
chromecast-mqtt-connector
- Control your Google Chromecast devices using MQTT.
-
harmony-api - A
simple server allowing you to query/control multiple local Harmony Home
Hubs over HTTP or MQTT.
-
htd2mqtt -
Bridge between an HTD Lync audio system and MQTT.
-
kodi2mqtt - Interface
between a Kodi media center instance and MQTT.
-
lgtv2mqtt -
Interface between LG WebOS Smart TVs and MQTT.
-
lirc2mqtt - Send
and receive infrared via LIRC.
-
mopidy-mqtt - MQTT
features for Mopidy.
-
MQTT-DashCast-Docker
- MQTT Docker to launch DashCast session on Chromecast.
-
mqtt2atlonamatrix
- Control Atlona HDMI matrix switches with MQTT.
-
mqtt2tivoremote
- Make TiVo DVR remote control available through an MQTT smarthome style
interface.
-
onkyo2mqtt -
Interface between Onkyo AVR’s EISCP network remote protocol and MQTT.
Uses the onkyo-eiscp library.
-
sonos2mqtt - A
bridge between Sonos and MQTT.
-
VLC MQTT Module
- Control VLC via MQTT.
-
xbmc2mqtt - A
simple plugin for XBMC to listen for a particular topic on an MQTT
broker, and display a popup message.
-
yamaha-avr2mqtt
- A simple adapter for connection Yamaha AVR to MQTT.
Smart Metering
Messaging
-
mqtt-irc-bot - A
MQTT to IRC / IRC to MQTT bridge or bot.
-
mqttwarn - Subscribe to
MQTT topics (with wildcards) and notify pluggable services.
-
twitter-to-mqtt
- A python daemon that uses the Twitter Streaming API to access tweets
and republishes them to an MQTT topic.
Misc
-
AlexaMqttBridge
- Bridge between Amazon Alexa and MQTT.
-
bt-mqtt-gateway
- Easily extensible Bluetooth to MQTT gateway, currently supports: EQ3
smart thermostat, Xiaomi Mi Scale, Linak Desk, MySensors and Xiaomi Mi
Flora plant sensor.
-
buderus2mqtt -
Bridge between Buderus KM200 internet gateway and MQTT.
-
chrome2mqtt - Python
program to enable MQTT control endpoints for chromecasts (both audio and
video).
-
dashbutton2mqtt
- Publish Amazon Dash Button presses to MQTT.
-
flowerpower2mqtt
- Publish measurements from Parrot Flower Power plant sensors to MQTT.
-
gBridge - gBridge
allows you to control (almost) any smart home device, any smart home
software, with Google Assistant. Therefore, it transforms actions
received from Google by voice commands to MQTT messages.
-
haiku2mqtt - A bridge
between Haiku smart fans and MQTT.
-
homely - Collection of Go
daemons for connecting Domoticz and other stuff.
-
kobold2mqtt -
Bridge between Vorwerk Kobold Vr200 internet gateway and MQTT.
-
leaf-python-mqtt
- Extract data from Nissan Leaf API and post to MQTT.
-
miflora-mqtt-daemon
- Linux service to send Xiaomi Mi Flora plant sensor data to an MQTT
broker.
-
MQTT.Cool - A web gateway that optimizes
any MQTT broker when sending real-time data to web clients with
automatic throttling.
-
mqtt2ble - A way to
bridge MQTT topics to BLE Gatt characteristics.
-
mqttclpro - MQTT Client
with tasker integration Android app.
-
mqttDB - A JSON
store with MQTT interface.
-
mqtt-camera-streamer
- Stream images from a connected camera over MQTT & view using
Streamlit
-
MQTT Joystick Controller
- Open Source Android app that lets you control everything with your
smartphone. Download it from Google Play.
-
mqtt-transformer
- A simple service which consumes, transforms and periodically republish
json messages on MQTT.
-
node-mqtt-for-anki-overdrive
- Node.js Controller and MQTT API for Anki Overdrive.
-
parrot-sample -
Sample code which uses MQTT to control a Parrot AR Drone.
-
snowboy2mqtt -
Publish MQTT Messages on Snowboy Hotword Detection.
-
speedtest2mqtt
- Run speedtest-cli and publish results via MQTT.
-
unifi2mqtt -
Publish connected clients from Ubiquiti Unifi to MQTT.
-
Valetudo - Xiaomi
(Roborock) Vacuum Robots Firmware with MQTT and Webinterface.
-
wlan-thermo-mqtt-addon
- Addon for a popular DIY barbecue thermometer.
-
Tasker (Automation for Android)
MQTT Publisher Plugin.
-
MQTT2ETCD -
MQTT-ETCD gateway: PUT keys on ETCD through MQTT, and watch ETCD key
changes on MQTT topics
Visualization, Dashboards
-
Crouton - A dashboard
that taps into your IOT network, using only MQTT and JSON.
-
d3-MQTT-Topic-Tree
- A MQTT Topic Tree viewer using the d3 collapsible tree and MQTT over
websockets.
-
HelloIoT -
HelloIoT is a MQTT client and dashboard application.
-
HOMR-REACT - A
configurable MQTT Visualization.
-
IoT OnOff - Configurable
iOS/Android app.
-
Linear MQTT Dashboard
- Easy, customizable control panel - MQTT-client.
-
MMM-mqtt - This
is an extension for the MagicMirror². It provides the ability to
subscribe to MQTT topics and display them.
-
MQTT Dash
- Android App: With the app you can create dashboards for your MQTT
enabled IoT Smart Home devices and applications.
-
MQTT-Hyperdash
- A universal independent MQTT Dashboard for linux/Raspberry Pi.
-
MQTT.Cool Test Client -
A web interface for testing interaction between MQTT.Cool and any MQTT
broker.
-
mqtt-panel - A web
interface for MQTT.
-
mqtt-prometheus-message-exporter
- A small service which will convert mqtt messages to prometheus
metrics.
-
mqtt-svg-dash -
Subscribe to MQTT, extract JSON from a message and make lights blink on
an SVG page.
-
mqtt2highcharts
- Plotting live numbered data from a subscribed MQTT topic using
Highcharts.
-
node-red-dashboard
- A dashboard UI for Node-RED.
Other tools that can be used to create Visualization/Dashboards can be
found under Platforms and
Smart Home Integration Software.
Architecture, Convention
Security, Encryption
-
Teserakt E4 - End-to-end encryption
and key management for MQTT and other M2M protocols – Open-source and
paid plans.
Contribute
Contributions welcome! Read the
contribution guidelines first.
License