libraries - mqtt/mqtt.org GitHub Wiki
Note: although there is a range of options available for developers interested in MQTT, not all of the client APIs listed below are current. Some are at an early or experimental stage of development, whilst others are stable and mature. Additionally, some may not provide full support for all of the features of the latest MQTT specification – for example, some may only support QoS 0, not include authentication, etc.
Check with the provider for the current status of your preferred language implementation, and remember to respect the licenses that different implementations are published under.
Device-Specific
-
Espduino (tailored Arduino library for the ESP8266)
(see also devices page for more on hardware with built-in support)
Actionscript
Bash
- see Shell Script, below
C
-
libemqtt - an embedded C client
-
MQTT-C - A portable MQTT C client for embedded systems and PCs alike.
-
wolfMQTT - Embedded C client
-
MQTT over lwIP - MQTT C client for embedded systems using FreeRTOS, lwIP and mbedtls
-
libsmartfactory - easy to use library for different Smart Factory/Industry 4.0 technologies including a MQTT client implementation
-
libumqtt - A Lightweight and fully asynchronous MQTT client C library based on libev
C++
-
mqtt_cpp - MQTT client and server library based on C++14 and Boost.Asio. It supports MQTT v3.1.1 and v5.
Clojure
Dart
Delphi
Erlang
-
emqttc - Erlang MQTT Client
-
my-mqtt4erl - updated fork of mqtt4erl
-
erl.mqtt.client - Erlang MQTT client
Elixir
-
hulaaki - An Elixir library (driver) for clients communicating with MQTT brokers(via the MQTT 3.1.1 protocol).
-
Exmqttc - Elixir wrapper for the emqttc library.
-
tortoise - A MQTT Client written in Elixir
Go
- Eclipse Paho Go
- mqtt by jeffallen
- MQTT🤖 — correct client library + mqttc(1)
Haskell
Java
-
Xenqtt - documentation Includes a client library, mock broker for unit/integration testing, and applications to support enterprise needs like using a cluster of servers as a single client, an HTTP gateway, etc.
-
IA92 - deprecated IBM IA92 support pack, use Eclipse Paho GUI client instead. A useful MQTT Java swing GUI for publishing & subscribing. The Eclipse Paho GUI is identical but uses newer client code
-
vertx-mqtt-client is an open-source, high performance, non-blocking MQTT client built as a part of vert.x's JVM toolkit.
-
Qatja is a Java client library for MQTT 3.1.1 with specific implementation for Android and Processing
-
HiveMQ MQTT Client - MQTT 5.0 and MQTT 3.1.1 compatible and feature-rich high-performance Java client library with different API flavours and backpressure support
-
Sentienz Akiro MQTT Client - MQTT 3.1.1 compatible Akiro MQTT broker Java client with callbacks.
Javascript / Node.js
-
IBM-provided PhoneGap / Apache Cordova MQTT plug-in for Android - JavaScript API is identical to Eclipse Paho HTML5 JavaScript
-
Ascoltatori - a node.js pub/sub library that allows access to Redis, AMQP, MQTT, and ZeroMQ with the same API.
LabVIEW
- LV-MQTT-Client by G Open Source Project
- MQTT-LabVIEW
- Quaxo-MQTT
- daq-io MQTT
- WireQueue MQTT Driver
LotusScript
Lua
.NET / dotNET
Objective-C
-
libmosquitto - via wrappers (example)
-
"MA9B" zip of 1/2 dozen mobile clients source code including Objective-C
OCaml
Perl
PHP
-
Simps/MQTT - MQTT Protocol Analysis and Coroutine Client for PHP. Support for 3.1, 3.1.1 and 5.0 versions of the MQTT protocol
Python
-
Eclipse Paho Python - originally the mosquitto Python client
REXX
Rust
- minimq (
no-std
/embedded)
Prolog
- MQTT Pack - Mosquitto library as a SWI-Prolog pack
Ruby
Qt
- qmqtt - MQTT Client for Qt
Shell Script
- bish-bosh, supports bash, ash (including BusyBox), pdksh and mksh.
Smalltalk
- MQTT client for Squeak, for Squeak 5.1
Swift
- CocoaMQTT - An MQTT client for iOS and OS X written with Swift
- mqtt-nio - A Swift NIO based MQTT 3.1.1 client