Jump to content

Comparison of MQTT implementations

From Alfawiki
MQTT Implementations
IndustrySoftware, Networking
ProductsMQTT brokers and clients

MQTT represents an ISO standard (ISO/IEC PRF 20922) that implements a publish-subscribe messaging protocol over TCP/IP networks. It is tailored for remote communication scenarios where minimal code size or constrained bandwidth is essential, utilizing a message broker as its core component.

The following analysis is based on the latest stable releases of the listed implementations, concentrating on features pertinent to MQTT.

Overview

Presented below is a summary table of various MQTT libraries and implementations, emphasizing critical business-related attributes such as the creators, licensing terms, supported programming languages, implementation types, release timelines, and countries of origin.

Implementation Developer Open source License Ownership Programming Language(s) Category Latest Stable Version and Release Date Country of Origin
Adafruit IO Adafruit Yes MIT License Adafruit Ruby, Node.js, Python, Go Client 2.0.0 United States
Amlen Eclipse Foundation Yes EPL 2.0 Eclipse Foundation C Broker 1.0.0.0 / 2022-05-25
Azure Event Grid MQTT broker Microsoft No Commercial License Microsoft C, C#, Java, JavaScript (Node.js), Python, Go Broker 2023-06-01-preview / 2023-05-25 United States
CoreFlux CoreFlux Portugal Lda. No Commercial License CoreFlux Portugal Lda. C, C#, Java, JavaScript (Node.js), Go Broker 1.4.5 / 2025-01-10 Portugal
EMQX EMQ Technologies Inc. Yes Apache License 2.0 EMQ Technologies Inc. Erlang Broker V5.3.1 / 2023-11-14 China
EMQX Enterprise EMQ Technologies Inc. No Commercial License EMQ Technologies Inc. Erlang Broker V5.3.1 / 2023-11-14 China
NanoMQ EMQ Technologies Inc. Yes MIT License EMQ Technologies Inc. C Broker and Client 0.5.8 China
MQTT X EMQ Technologies Inc. Yes Apache License 2.0 EMQ Technologies Inc. TypeScript Client v1.7.1 China
FairCom Edge FairCom Corporation No Commercial License FairCom Corporation C Broker 3.0.0 / 2020-11-01 United States
FlashMQ Wiebe Cazemier Yes OSL3 Wiebe Cazemier C++ Broker 1.22.0 / 2025-06-11 Netherlands
flespi Gurtam No Commercial License Gurtam C Broker 2018-04-05 Belarus
GridServer GRID System S.A.S No Commercial License GRID System S.A.S Pascal, Delphi Broker 2019-09-15 France
HiveMQ MQTT Client HiveMQ Yes Apache License 2.0 HiveMQ Java Client 1.3.1 / 2023-04-12 Germany
HiveMQ Community Edition HiveMQ Yes Apache License 2.0 HiveMQ Java Broker 2025.4 / 2025-07-01 Germany
HiveMQ HiveMQ No Commercial License HiveMQ Java Broker 4.42.0 / 2025-07-29 Germany
IBM WIoTP Message Gateway IBM No Commercial License IBM C Broker 5.0.0.1 / 2019-02-29
JoramMQ ScalAgent D.T. No (based on LGPL open-source broker) Commercial License ScalAgent D.T. Java Broker 1.19.3 / October 2024 France
KMQTT Davide Pianca Yes MIT License Davide Pianca Kotlin Client and Broker 0.4.1 / 2023-04-12 Italy
LV-MQTT-Broker Francois Normandin (Open Source Project) Yes 0-BSD License LabVIEW Open Source Project LabVIEW Broker and Client 3.2.0 Canada
M2Mqtt Eclipse Foundation Yes

  Eclipse Public License   Eclipse Foundation   C#   Client   4.3.0 / 2017-05-20   Canada

Machine Head

  ClojureWerkz   style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes   Creative Commons Attribution   Alexander Petrov et al.   Clojure   Client   1.0.0 / 2017-03-05                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

Mongoose Library

 Cesanta style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes GPLv2 or Commercial Cesanta C/C++ Client and Broker 7.9 / 2023-01-24 Ireland

moquette

Andrea Selva style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes Apache License 2.0 Andrea Selva Java Broker 0.16 / 2023-01-06 Italy

Mosquitto

Eclipse Foundation style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes Eclipse Public License & BSD Eclipse Foundation C Client and Broker 2.0.18 / 2023-03-03 United Kingdom

MQTT🤖

Pascal de Kloe style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes Public Domain nobody Go Client v1.0.0 / 2020-02-22 Netherlands

MQTT-C

Liam Bindle style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes MIT License Liam Bindle C Client 1.1.5 / 2021-04-01 Canada

mqttools

Erik Moqvist style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes MIT License Erik Moqvist Python Client and Broker 0.34 / 2020-01-20 Sweden

net-mqtt

Dustin Sallings style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes BSD 3-Clause License Dustin Sallings Haskell Client 0.6 /2019-10-12 United States

OpenRemote MQTT Broker

OpenRemote style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes AGPLv3 OpenRemote Java Broker 3.0.1 /2021-03-10 United States

Paho MQTT

Eclipse Foundation style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes Eclipse Public License & BSD Licenses Eclipse Foundation C, C++, C#, Go, Java, JavaScript, Python, Rust Client 1.4 /2018-06-27 United Kingdom

PubSub+

Solace Corporation style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no"|No Commercial (with free tier) Solace Corporation C, C#, Java, JavaScript (Node.js), Python, Go Broker 9.8.1 /2021-01-14 Canada

RMQTT

rmqtt style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes MIT License rmqtt Rust Broker 0.2.20 /2023-11-04

Thingstream

Thingstream style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no"|No Commercial Thingstream C, C++, Java, JavaScript, Python, Go Client and Broker 3.3 /2019-03-14 United Kingdom

VerneMQ

VerneMQ/Octavo Labs style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes Apache License 2.0 VerneMQ/Octavo Labs Erlang/OTP Broker 2.0 /2024-04-15 Switzerland

wolfMQTT

wolfSSL style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes GPLv2 and Commercial Licenses wolfSSL C Client 1.11 /2022-01-07 United States

eMQTT5

Cyril Russo style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes MIT License Cyril Russo C++ Client 1.0 /2020-03-31 France

Bevywise MQTTBroker

Bevywise Networks style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no"|No Commercial Bevywise Networks C, Python Broker v1.1 /2018-10-20 India

OpenHAB MQTT binding

OpenHAB style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes Eclipse Public License OpenHAB Java Client 2.5 /2020-04-21 Germany

Waterstream

SimpleMatter Srl style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no"|No Commercial SimpleMatter Srl Kotlin Broker 1.00 Italy

MQTTDESK MQTT Client

ioCtrl style="background:#FFC7C7;color:black;vertical-align:middle;text-align:center;" class="table-no"|No Commercial ioCtrl Node.js Client v2.1 /2021 India

MQTTnet

.NET Foundation style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes MIT License .NET Foundation C# Client and Broker v4.x United States

Boost.MQTT5

Mireo style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes Boost Software License Mireo C++ Client v1.x /2025 Croatia

For an extensive catalog of MQTT implementations, refer to the GitHub repository.

Protocol Compatibility

Multiple versions of the MQTT protocol have been formalized by various entities:

  • MQTT-SN v1.2, developed by IBM.
  • MQTT v3.1, created by Eurotech and IBM.
  • MQTT v3.1.1, standardized by OASIS.
  • MQTT v5.0, also standardized by OASIS.

The following table provides an overview of MQTT protocol support among different implementations, including their compatibility with SSL/TLS and TCP. Utilizing SSL/TLS is crucial for encrypting MQTT communication, which otherwise occurs in an unencrypted form.

Implementation MQTT-SN v1.2 MQTT 3.1 MQTT 3.1.1 MQTT 5.0 SSL/TLS TCP WS/WSS
Amlen Yes Yes Yes Yes Yes Yes
Azure Event Grid MQTT broker Yes Yes Yes Yes Yes
CoreFlux Yes Yes Yes Yes Yes Yes
EMQX Yes Yes Yes Yes Yes Yes Yes
FairCom Edge Yes Yes Yes Yes Yes Yes
FlashMQ Yes Yes Yes Yes Yes Yes
flespi Yes Yes Yes Yes Yes Yes
HiveMQ Yes (broker only) Yes Yes Yes Yes Yes
IBM WIoTP Message Gateway Yes Yes Yes Yes Yes Yes
JoramMQ Yes Yes Yes Yes Yes Yes Yes
KMQTT Yes Yes Yes Yes Yes
LMQTT

via old stack via old stack

style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes

LV-MQTT
M2Mqtt
Machine Head
Mongoose
moquette
Mosquitto
MQTT-C
mqttools
net-mqtt
Paho MQTT (C, Python, Java clients)
RMQTT
Solace PubSub+
  Cite error: The opening <ref> tag is malformed or has a bad name    
  Cite error: The opening <ref> tag is malformed or has a bad name    
SharkMQTT
Thingstream


wolfMQTT



Service quality levels provided

According to the description on the MQTT page, quality of service (QoS) is characterized as:

Quality of service involves mechanisms for prioritizing traffic and managing resource allocation rather than the actual quality achieved. QoS enables assigning varying priorities to applications, users, or data streams, or ensures a guaranteed performance level for a specific data flow.

The defined QoS tiers include:

  1. Delivery at most once (fire-and-forget)
  2. Delivery at least once (acknowledged delivery)
  3. Delivery exactly once (guaranteed delivery)

The following tables outline the extent to which each implementation supports these QoS categories.

Implementation 0 1 2
Adafruit IO Yes Yes No
Amlen Yes Yes Yes
Azure Event Grid MQTT broker Yes Yes No
CoreFlux Yes Yes Yes
EMQX Yes Yes Yes
FairCom Edge Yes Yes Yes
FlashMQ Yes Yes Yes
flespi Yes Yes Yes
HiveMQ Yes Yes Yes
IBM WIoTP Message Gateway Yes Yes Yes
JoramMQ Yes Yes Yes
KMQTT Yes Yes Yes
LMQTT Yes Yes Yes
LV-MQTT Yes Yes Yes
M2Mqtt Yes Yes Yes
Mongoose Yes Yes Yes
moquette Yes Yes Yes
Mosquitto Yes Yes Yes
MQTT-C Yes Yes Yes
mqttools Yes No No
net-mqtt Yes Yes Yes
Paho MQTT Yes Yes Yes
Solace PubSub+ Yes Yes No
Implementation 0 1 2
SharkMQTT Yes Yes Yes
Thingstream Yes Yes Yes
VerneMQ Yes Yes Yes
wolfMQTT Yes Yes Yes
eMQTT5 Yes Yes Yes
Bevywise MQTTBroker Yes Yes Yes
Waterstream Yes Yes Yes
MqttDesk MQTT Client Yes Yes Yes
MQTTnet Yes Yes Yes
Boost.MQTT5 Yes Yes Yes

Portability considerations

This segment outlines technical aspects that affect selection of implementations, tailored for users acquainted with the hardware environments targeted.

Implementation Platform prerequisites Network dependencies Thread safety support Cross-compilation capability Bare metal compatibility
Adafruit IO Adafruit Feather Huzzah, ESP8266, Raspberry Pi, Arduino, and any platform compatible with Python, Ruby, or Node.js "Depends on platform"
Amlen

Linux

style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes

style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes

CoreFlux

Linux, Unix, macOS, Microsoft Windows, Raspberry Pi

style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes

style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes

style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes

EMQX

Linux, Unix, macOS, Microsoft Windows, Raspberry Pi

style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes

style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes

style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes

Faircom Edge

Linux, MacOS, Windows, Raspberry Pi, Android platforms

style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes

style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes

style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes

flespi

(no data)

(no data)

(no data)

(no data)

(no data)

HiveMQ

Java virtual machine (JVM), Linux, macOS, Microsoft Windows, Raspberry Pi

style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes

style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes

style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes

JoramMQ

Java virtual machine (JVM), Linux, macOS, Microsoft Windows, Raspberry Pi

style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes

style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes

style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes

KMQTT

Java virtual machine (JVM), Linux, Microsoft Windows, Raspberry Pi

style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes

style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes

(no data)

M2Mqtt

Any .NET environment (.NET Framework, .NET Compact Framework, .NET Micro Framework), and Windows Runtime

(no data)

(no data) (no data) (no data)
Machine Head

Leiningen 2

(no data) (no data) (no data) (no data)
mosquitto

C90 (C version), compatible with Linux, Unix, macOS, Microsoft Windows, and Raspberry Pi platforms.

(no data)

style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes

style="background:#9EFF9E;color:black;vertical-align:middle;text-align:center;" class="table-yes"|Yes

(no data)
MQTT-C

ANSI C (C89)
Platform-independent (supports bare metal, Linux, macOS, Windows)

"Network IO callbacks required"

Supports single-threaded operation only (thread safe)

Cross-compilation capable

Bare metal support available

net-mqtt

Glasgow Haskell Compiler

"Network required" "Thread safe" "Cross-compilable" (no data)
Paho MQTT

ANSI C (C client),
C++11 (C++ client),
Java virtual machine or Android (Java client)

(no data) (no data) "Thread safe for C and C++ clients" "Cross-compilable for C and C++ clients"
SharkMQTT

ANSI C (C89)
Platform-agnostic: suitable for bare metal, RTOS, and high-level operating systems.

(no data) "Thread safe" "Cross-compilable" "Bare metal supported"
wolfMQTT

ANSI C#C89

"Network IO callbacks required" "Thread safe" "Cross-compilable" "Bare metal supported"
eMQTT5

Linux, Unix, macOS, Microsoft Windows, ESP32, STM32 (with lwIP and Mbed TLS), built with C++11

"BSD socket implementation needed" "Thread safe" "Cross-compilable" "Bare metal supported"
Bevywise MQTTBroker

Linux, Unix, macOS, Microsoft Windows, Raspberry Pi platforms.

(no data) (no data) (no data) "Bare metal supported"
MqttDesk

Linux, Unix, macOS, Microsoft Windows, Raspberry Pi platforms.

(no data) (no data) (no data) (no data)


General requirements

The table below presents essential implementation specifics for a range of MQTT solutions, emphasizing build environments, platform prerequisites, and compatible operating systems to assist in informed business deployment choices.

Implementation Build tools Platform requirements Supported operating systems
Adafruit IO
Amlen Make, Ant Linux-based systems CentOS, Red Hat Enterprise Linux
CoreFlux Linux, Unix, macOS, Windows, Raspberry Pi platforms CentOS, NixOS, Debian, Docker containers, Ubuntu, Red Hat Enterprise Linux, macOS, Windows 10/7 editions, Raspbian
EMQX Erlang/OTP R19+ (required for source compilation) Linux, Unix variants, macOS, Windows, Raspberry Pi hardware CentOS, Debian, Docker environments, macOS, Ubuntu, Red Hat Enterprise Linux, Windows 10/7 versions, Raspbian
FairCom Edge Visual Studio, Make, CMake, gcc compiler C compiler supporting ANSI C/C89 or newer standards Linux distributions, macOS, Windows platforms, Raspbian OS, Android devices
flespi Cloud-hosted service (operating system independent)
HiveMQ Linux and Unix systems, macOS, Windows OS, Raspberry Pi devices CentOS, Debian releases, Docker setups, Ubuntu distributions, Red Hat Enterprise Linux versions, macOS editions, Windows 10/7 platforms, Raspbian OS
IBM WIoTP Message Gateway Linux environments CentOS distributions, Docker containers, Red Hat Enterprise Linux versions
JoramMQ Maven build system with Java support Linux and Unix platforms, macOS systems, Windows OS versions, Raspberry Pi hardware CentOS releases, Debian distributions, Docker environments, Ubuntu versions, Red Hat Enterprise Linux editions, macOS systems, Windows 10/7 platforms, Raspbian OS
KMQTT Gradle with Kotlin language support Linux OSes and JVM platforms; Windows and Raspberry Pi supported Compatible with Linux and Windows operating systems
M2Mqtt Visual Studio IDE Any platform supporting .NET Framework variants or WinRT Compatible with Windows 98 and newer versions; includes Windows Phone 8.1
Machine Head Maven and Leiningen (Clojure language) Leiningen version 2 required Supported on macOS and Debian/Ubuntu Linux distributions
mosquitto Make and CMake build tools Complies with C90 standard BSD variants, Linux distributions, macOS systems, QNX OSes and Windows platforms
MQTT-C Optional use of Make or CMake Requires ANSI C/C89 or later compliant compiler Suitable for bare metal environments as well as Linux/macOS/Windows systems
net-mqtt stack based on Haskell language GHC compiler necessary
Paho MQTT Utilizes Autotools, CMake,gmake,gcc/g++, Maven for Java clients ANSI C for C client; C++11 for C++ client; JVM/Android for Java client Operating system compatibility varies by programming language; refer to official Eclipse Paho downloads for details.
Solace PubSub+ Supports Linux distributions, macOS and Windows OS Compatible with CentOS, Debian releases,Docker containers,KVM virtualization,Ubutnu,RHEL ,macOS ,Windows 10/7; also available as a cloud-based option
SharkMQTT Compatible with various build tools including Make Requires ANSI C/C89 or newer compliant compiler Operates on bare metal hardware and all major operating system platforms
wolfMQTT Employs Autotools (autoconf/automake), Visual Studio; integrates wolfSSL for SSL/TLS capabilities ANSI C89 standard compliant Broad OS compatibility: Windows (Win32/64), Linux/macOS/Solaris/FreeBSD variants/embedded systems/iOS/Android/QNX along with numerous RTOS platforms
eMQTT5 Uses cmake; incorporates Mbed TLS for SSL/TLS support Built on C++11 standard Runs on Windows (Win32/64), Linux/macOS/FreeRTOS/FreeBSD variants as well as embedded Linux and Yocto projects
Bevywise MQTTBroker Supports Autotools and Visual Studio builds Runs on Linux , Unix , macOS , Windows , Raspberry Pi hardware Compatible with CentOS , Debian , Docker , KVM virtualization , Ubuntu , RHEL , macOS , Windows 32/64 & Server editions , Raspberry Pi ; also offered as Cloud service
OpenHAB Built using Eclipse Java build framework Supports Linux , Unix , macOS , Windows , Raspberry Pi devices Compatible with CentOS , Debian , Ubuntu , RHEL , macOS , Windows 32/64 editions , Raspberry Pi
MqttDesk Compatible with Linux , Unix , macOS , Windows , Raspberry Pi platforms Supports CentOS , Debian , macOS , Ubuntu , RHEL , Windows 10/7 editions , Raspberry Pi OS
MQTTnet Developed using Visual Studio Targets .NET Framework environment Designed for Windows operating system


References