You are on page 1of 1

wolfMQTT Client Library

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

Supported Operating Environments


Supported Chipmakers

wolfSSL has support for chipsets including ARM, Intel, Win32/64, Linux, Mac OS X, Solaris, ThreadX, VxWorks, FreeBSD,
Motorola, mbed, NXP/Freescale, Microchip (PIC32)/Atmel, NetBSD, OpenBSD, embedded Linux, Yocto Linux, OpenEmbedded,
STMicroelectronics (STM32F2/F4), Analog Devices, TI, WinCE, Haiku, OpenWRT, iPhone (iOS), Android, Nintendo Wii and
and more. Gamecube through DevKitPro, QNX, MontaVista, NonStop,
TRON/ITRON/µITRON, Micrium µC/OS-III, FreeRTOS, SafeRTOS,
If you would like to use or test wolfMQTT/wolfSSL on NXP/Freescale MQX, Nucleus, TinyOS, HP/UX, AIX, ARC MQX, TI-
another chipset or environment, let us know and we’ll be RTOS, uTasker, embOS, INtime, Mbed, uT-Kernel, RIOT, CMSIS-
happy to support you. RTOS, FROSTED, Green Hills INTEGRITY, Keil RTX, TOPPERS,
PetaLinux, Apache Mynewt, PikeOS

wolfssl.com
github.com/wolfssl
Copyright © 2023 wolfSSL Inc. All Rights Reserved

You might also like