PRODUCTS

Products -> wolfMQTT Client Library

Supported Chipmakers

  1. wolfSSL has support for chipsets including ARM, Intel, Motorola, mbed, NXP/Freescale, Microchip (PIC32)/Atmel, STMicro (STM32F2/F4), Analog Devices, Texas Instruments, and more


  1. If you would like to use or test wolfMQTT/wolfSSL on another chipset, let us know and we’ll be happy to support you.

wolfMQTT Client Library

Version:  0.13.0

Release Date: 05/12/2017

View ChangeLog

Platform and Language Support


wolfMQTT is built for maximum portability and is generally very easy to compile on new platforms.  If your desired platform is not listed under the supported operating environments, please contact us.


wolfMQTT supports the C programming language as a primary interface. If you have interest in using wolfMQTT in another programming language that it does not currently supported, please contact us.


Commercial Support


Support packages for wolfMQTT are available on an annual basis directly from wolfSSL.  With three different package options, you can compare them side-by-side and choose the package that best fits your specific needs.  Please see our Support Packages page for more details or contact us with any questions.


wolfSSL Training Course


Interested in getting trained by the wolfSSL team on subjects related to wolfSSL and SSL/TLS?  Learn more.

Documentation:

wolfMQTT is dual licensed under both the GPLv2 and commercial licensing.  For more information, please see the following links.

Licensing and Ordering:

Follow us on Twitter and Facebook!

Stay up to date:

Download Now

Get the latest open source GPLv2 version now!

Supported Operating Environments

  1. Win32/64, Linux, Mac OS X, embedded Linux, FreeRTOS.


  1. If you would like to test wolfSSL on another environment, let us know and we’ll be happy to support you.

HIGHLIGHTS


  1. -Based on MQTT v3.1.1 specification

  2. -QoS Levels 0-2

  3. -Support for TCP or TLS

  4. -Examples Available

  5. -Support Available

LIGHTWEIGHT


- Small Size: 3.6kB

  1. -Able to leverage lightweight wolfSSL embedded SSL/TLS library

PORTABLE


  1. -Simple API

  2. -Written in native C89

  3. -Minimal external dependencies

  4. -Less than 1200 lines of code

Description

MQTT (Message Queuing Telemetry Transport) is a lightweight open messaging protocol that was developed for constrained environments such as M2M (Machine to Machine) and IoT (Internet of Things), where a small code footprint is required. MQTT is based on the Pub/Sub messaging principle of publishing messages and subscribing to topics. The protocol efficiently packs messages to keep the overhead very low. The MQTT specification recommends TLS as a transport option to secure the protocol using port 8883 (secure-mqtt). Constrained devices can benefit from using TLS session resumption to reduce the reconnection cost.


The wolfMQTT library is a client implementation of the MQTT written in C for embedded use. It supports SSL/TLS via the wolfSSL library. It was built from the ground up to be multi-platform, space conscience and extensible. It supports all Packet Types, all Quality of Service (QoS) levels 0-2 and supports SSL/TLS using the wolfSSL library. This implementation is based on the MQTT v3.1.1 specification.


wolfMQTT is built for maximum portability, and is generally very easy to compile on new platforms.  If your desired platform is not listed under the supported operating environments, please contact wolfSSL at info@wolfssl.com.

Features


  1. Built from scratch by wolfSSL engineers

  2. Based on MQTT v3.1.1 specification

  3. Supports all client side packet types and protocol options

  4. QoS Levels 0-2 (guaranteed delivery)

  5. Supports plain TCP or TLS (via the wolfSSL library)

  6. Single threaded model and single message callback

  7. Written in Native C89 with portability/compatibility in mind

  8. Space conscience design (Compiled size is about 3.6kB)

  9. User manual with build instructions, example overview, and API documentation

  10. Example MQTT client implementations

  11. Network interface is abstracted via callbacks for extensibility

  12. Packet parsing encoding/decoding structured for custom use

  13. Minimal external dependencies (strlen, memcpy, memset)

  14. Detailed error checking/handling

  15. Doxygen style inline documentation

  16. Less than 1200 lines of well structured C code

  17. Tested on multiple variants of MQTT broker servers, QoS levels 0-2 with/without TLS

  18. Tested on Linux, Mac OS X, and Freescale Kinetis K64

  19. Inherits wolfSSL library features such as lightweight TLS using ChaCha20/Poly1305 AEAD, small size and portability

  20. Open source (GPLv2)

  21. Example Arduino IDE project

  22. Example UART interface for wolfMQTT

Copyright 2017 wolfSSL Inc.  All rights reserved.

embedded ssl

Questions? +1 (425) 245-8247