wolfMQTT Client Library
wolfMQTT Client Library
Description Features
MQTT (Message Queuing Telemetry Transport) is a lightweight ● Built from scratch by wolfSSL engineers
open messaging protocol that was developed for constrained ● Supports MQTT specifications v3.1.1 and v5.0
environments such as M2M (Machine to Machine) and IoT ● Support for MQTT-SN
(Internet of Things), where a small code footprint is required. ● Supports all client side packet types and protocol options
MQTT is based on the Pub/Sub messaging principle of publishing ● Lightweight (Compiled size is about 3.6kB)
messages and subscribing to topics. The protocol efficiently packs ● QoS Levels 0-2 (guaranteed delivery)
messages to keep the overhead very low. The MQTT specification ● Message integrity, security are still available
recommends TLS as a transport option to secure the protocol ● Supports plain TCP or TLS (via the wolfSSL library)
using port 8883 (secure-mqtt). Constrained devices can benefit ● Single threaded model and single message callback
from using TLS session resumption to reduce the reconnection ● Written in native C89 with portability/compatibility in mind
cost. ● User manual with build instructions, example overview, and
API documentation
The wolfMQTT library is a client implementation of the MQTT ● Example MQTT client implementations
written in C for embedded use. It supports SSL/TLS via the ● Network interface is abstracted via callbacks for
wolfSSL library. It was built from the ground up to be extensibility
multi-platform, space conscience and extensible. It supports all ● Packet parsing encoding/decoding structured for custom
Packet Types, all Quality of Service (QoS) levels 0-2 and supports use
SSL/TLS using the wolfSSL library. This implementation provides ● Minimal external dependencies (strlen, memcpy, memset)
support for MQTT v5.0 and is based on MQTT v3.1.1. Additionally, ● Detailed error checking/handling
there is also clientsupport for MQTT-SN (Sensor Network). ● Doxygen style inline documentation
● Less than 1200 lines of well structured C code
wolfMQTT is built for maximum portability, and is generally very ● Tested on multiple variants of MQTT broker servers, QoS
easy to compile on new platforms. If your desired platform is not levels 0-2 with/without TLS
listed under the supported operating environments, please contact ● Tested on Linux, Mac OS X, and Freescale Kinetis K64
wolfSSL at facts@wolfssl.com. ● Inherits wolfSSL library features such as lightweight TLS
usingChaCha20/Poly1305 AEAD, small size and portability
● Open source (GPLv2)
● FreeRTOS + TCP support
● Example Arduino IDE project
● IBM Watson IoT Example with IBM developer recipe
● IBM Watson IoT Platform is a supported cloud provider
● Example UART interface for wolfMQTT
wolfssl.com
github.com/wolfssl
Copyright © 2024 wolfSSL Inc. All Rights Reserved