wolfMQTT

Introduction

wolfMQTT is a lightweight, portable MQTT client library optimized for embedded systems, RTOS environments, and resource-constrained devices. It provides a client implementation of the MQTT protocol with support for MQTT v3.1.1 and v5.0. The library offers features such as QoS levels 0-2, Last Will and Testament (LWT), and compatibility with various MQTT brokers. Its support for multiple build configurations makes it suitable for a wide range of IoT applications and hardware platforms that are utilizing the Zephyr RTOS.

wolfMQTT has support for the Zephyr networking stack so applications can use the wolfMQTT API to establish MQTT connections with brokers and other devices or services over the network.

wolfMQTT is dual licensed under GPLv3 and commercial licenses.

GitHub Repository: wolfMQTT Repository [1]

Requirements

  • wolfSSL for secure communication (TLS support)

Usage with Zephyr

Add wolfMQTT as a project to your west.yml:

manifest:
  remotes:
  # <your other remotes>
  - name: wolfmqtt
    url-base: https://github.com/wolfssl
projects:
  # <your other projects>
  - name: wolfmqtt
    path: modules/lib/wolfmqtt
    revision: v1.21.0
    remote: wolfmqtt

Note

The revision shown above is an example. Check the wolfMQTT Repository [1] releases page for the latest release tag to ensure you are using the desired version.

Update west’s modules:

west update

Now west recognizes wolfmqtt as a module, and will include its Kconfig and CMakeLists.txt in the build system.

For more regarding the usage of wolfMQTT with Zephyr, please refer to the wolfMQTT Zephyr Example Usage [2].

For application code examples in Zephyr, please refer to the wolfSSL NXP AppCodeHub [3].

For wolfMQTT API documentation, please refer to the wolfMQTT Documentation [4].

Reference