eclipse-paho/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/paho.mqtt.embedded-c
Eclipse Paho MQTT C/C++ client library designed for embedded platforms. Part of the Eclipse IoT project, it provides three sub-projects: MQTTPacket (low-level C library for MQTT packet serialization/deserialization), MQTTClient (higher-level C++ client with pluggable networking support for platforms like Linux, Arduino, and mbed), and MQTTClient-C (a C equivalent of the C++ client for platforms not supporting C++). The library is dual-licensed under EPL and EDL, allowing flexible use and distribution. Build via CMake with automated testing on Travis-CI. Includes samples, Doxygen documentation, and debug tracing via the MQTT_DEBUG preprocessor definition.
Key Features
Pros & Cons
- Lightweight and minimal dependencies, especially MQTTPacket
- Supports both C and C++, accommodating diverse embedded toolchains
- Part of the well-established Eclipse Paho project with community support
- Dual-license (EPL/EDL) eases integration into proprietary projects
- Documentation including samples, porting guide, and Doxygen
- MQTTPacket requires user to implement network I/O; no built-in transport
- C++ client may not be suitable for platforms lacking C++ compilers
- Limited to MQTT protocol; no support for other IoT messaging protocols