Lightweight messaging libraries for implementing MQTT protocols in resource-constrained Internet of Things device applications.
This repository contains the source code for the Eclipse Paho MQTT C/C++ client library for Embedded platorms.
Eclipse Paho's embedded C/C++ MQTT client library is purpose-built for resource-constrained IoT devices, providing a lightweight implementation that supports MQTT 3.1.1 and 5 with TLS and minimal dependencies — exactly what this search requires.
MQTT is an easily used networking protocol designed for IOT (internet of things) applications. It is well suited for controlling hardware devices and for reading sensors across a local network or the internet.
peterhinch/micropython-mqtt is a lightweight MQTT client library designed for MicroPython on IoT devices, so it fits the embedded space, but it is implemented in Python rather than C or C++ as requested.
MQTT publish for micropython on the WiPy board.
umqtt is a lightweight MQTT client for MicroPython on embedded devices, fitting the category of an MQTT client library for IoT but implemented in Python rather than the preferred C/C++ and tailored to a specific board.
Async MQTT client library with auto reconnect for MicroPython devices such as the ESP32 or Pycom devices
This is an asynchronous MQTT client library for MicroPython devices like the ESP32, making it a genuine MQTT client for resource-constrained IoT, but it is written in Python rather than C/C++ as typically preferred.
libwebsockets is an event-driven networking framework written in C. It provides a suite of tools for implementing HTTP servers and clients, WebSocket bidirectional communication, MQTT client messaging, and TLS-enabled socket encryption. The project distinguishes itself through a non-blocking event-loop architecture capable of scaling to high connection volumes by distributing network sessions across multiple service threads. It uses a protocol-based callback system and a pluggable event loop integration that allows the networking core to synchronize with external system event libraries. The
libwebsockets is an event-driven C networking framework that includes MQTT client messaging with TLS support, making it a viable choice for embedded/IoT devices, though its broader scope means it is not as minimal as a dedicated MQTT client library.
This library is an MQTT client implementation designed for resource-constrained embedded systems, specifically targeting ESP8266 microcontrollers. It provides a framework for establishing persistent network connections to exchange data with remote messaging brokers, enabling reliable communication for IoT devices. The library distinguishes itself through its ability to maintain simultaneous connections to multiple independent messaging brokers, facilitating complex data routing across distributed environments. It utilizes a state-machine approach to manage connection lifecycles, including aut
This library is a lightweight MQTT client written in C specifically for ESP8266 IoT modules, fitting the target of resource-constrained devices and your language requirement, though its hardware-specific design limits broader platform use.
This project is a Java messaging software development kit designed to facilitate real-time data exchange between applications and message brokers. It functions as an MQTT client library, providing the necessary tools to implement publish-and-subscribe messaging patterns within distributed systems and internet-connected device environments. The library distinguishes itself through its focus on resilient network connectivity and reliable message delivery. It manages persistent connections through internal state machines that handle automatic reconnection and keep-alive heartbeats, ensuring stab
This is a Java MQTT client library from Eclipse Paho, so it fits the MQTT client library category, but it is not implemented in C or C++ and is not suited for resource-constrained embedded devices.
This library is an Arduino-compatible client for the messaging protocol designed for resource-constrained embedded systems. It provides a messaging interface that enables microcontrollers to establish persistent connections with brokers to exchange data and control signals. The library distinguishes itself through a focus on predictable resource usage, utilizing manual memory buffer management and a state-machine approach to handle connection persistence and automatic reconnections. It operates on a stream-oriented network abstraction, allowing it to interface with various hardware transport
This is an MQTT client library written in C specifically for Arduino, which makes it the right kind of lightweight embedded/IoT tool you are after, though the brief description leaves several desired features (like MQTT 5, TLS, and IPv6 support) unconfirmed.
This project is a cross-platform C library designed for implementing MQTT messaging in applications. It serves as an asynchronous networking toolkit that enables resource-constrained systems and distributed components to exchange telemetry data and control signals with messaging brokers. The library distinguishes itself through a state-machine-based protocol handler that manages connection lifecycles and persistent session states, ensuring reliable message delivery even during intermittent network connectivity. It utilizes a background thread to manage network operations, allowing application
This is Eclipse Paho's C MQTT client library, a well-known and widely used implementation that supports MQTT 3.1.1 and 5, runs on multiple platforms, and includes TLS — making it a solid, standard fit for embedded/IoT devices.