eclipse/paho.mqtt.embedded-c
FreePaho MQTT C client library for embedded systems. Paho is an Eclipse IoT project (https://iot.eclipse.org/)
About eclipse/paho.mqtt.embedded-c
Eclipse Paho MQTT C/C++ client library for embedded platforms, part of the Eclipse IoT project. The library is dual-licensed under EPL and EDL, allowing embedding without requiring contributions back under EDL. It contains three sub-projects: MQTTPacket (low-level serialization/deserialization of MQTT packets with helper functions), MQTTClient (higher-level C++ client with pluggable networking), and MQTTClient-C (C equivalent of MQTTClient). Supported platforms include Linux, Arduino, and ARM mbed. The library provides CMake build support and debug tracing via MQTT_DEBUG preprocessor definition. The repository includes sample code and Doxygen documentation.
Key Features
Pros & Cons
- Open source and dual-licensed (EPL/EDL) – flexible for proprietary use
- Supports both C and C++ – suitable for a wide range of embedded environments
- Actively maintained as an Eclipse IoT project with community support
- Well-documented with samples and Doxygen
- Lightweight and modular – use only the sub-project you need
- Lower-level MQTTPacket requires manual network read/write – no built-in I/O
- C++ client may not be available on all embedded C-only compilers
- Limited to MQTT protocol – no support for other IoT protocols out of the box