On this page
Overview
Eclipse Paho MQTT Embedded C provides MQTT client source for constrained platforms. It contains the small MQTTPacket serialization/deserialization layer plus higher-level C++ MQTTClient and C MQTTClient-C layers whose networking can be adapted to embedded operating systems and custom network stacks.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Use MQTTPacket alone as a compact protocol layer
MQTTPacket leaves network I/O to the application and focuses on MQTT packet serialization, deserialization, and helper functions for a small dependency footprint.
Port C and C++ clients through pluggable networking
The higher-level C++ and C clients separate networking concerns and include examples for environments such as Linux, Arduino, and mbed that can guide custom ports.
Sources: [1]
Best fit
Fits embedded MQTT clients where footprint and network portability matter
It is useful for microcontrollers, RTOS environments, and custom TCP stacks where a smaller protocol component is preferred over a full desktop client library.
Sources: [1]
Before adoption
Do not judge maintenance only by the 2017 tagged release
The latest GitHub release/tag is v1.1.0 from 2017, but master still received fixes in 2026. New adoption should review current history and test on the intended platform rather than relying only on release age.
Pin a reviewed master commit because current master is not a formal release
As of October 4, 2026, master points to 6035ea2. If current fixes are required, pin a reviewed commit SHA instead of floating master so builds remain reproducible.
Sources: [4]
Network I/O and buffer ownership remain significant platform responsibilities
The low-level packet layer delegates reads and writes to the caller, so timeout behavior, partial I/O, buffer sizing, disconnects, and errors need to be validated in the target networking implementation.
Sources: [1]
Official sources
- [1]Paho MQTT Embedded C master README(2026-10-04)
- [2]Paho MQTT Embedded C current CMake configuration(2026-10-04)
- [3]MQTTPacket CMake target(2026-10-04)
- [4]Current master commit 6035ea2(2026-10-04)
- [5]Paho MQTT Embedded C v1.1.0 release(2026-10-04)
- [6]Paho declared project licenses(2026-10-04)
Supplemental curator note
The latest tagged release is v1.1.0 from 2017, while the repository master was still receiving fixes in July 2026. Do not use the release tag alone as a maintenance signal; review current master fixes and test on the intended platform. For reproducibility, this entry also records current master commit 6035ea2.
Try it in 3 steps
- 1
Fetch current master and pin the reviewed commit
Because the latest tag is from 2017, explicitly pin the master commit reviewed on October 4, 2026.
git clone https://github.com/eclipse-paho/paho.mqtt.embedded-c.git paho-embedded && git -C paho-embedded checkout 6035ea2d4922bb7558b444fb2a051743f3f1974b - 2
Configure the CMake project
Generate a build tree containing MQTTPacket, the C++ MQTTClient, and the C MQTTClient subprojects.
cmake -S paho-embedded -B paho-embedded/build - 3
Build only the compact MQTTPacket library
Compile the packet serialization/deserialization layer without connecting to an MQTT broker.
cmake --build paho-embedded/build --target paho-embed-mqtt3c
Growth
Growth trends · Last 30 days
1,544 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 0
- Open PRs
- 16
Development activity is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- eclipseiot
- mqtt
- iot
- embedded
- internet-of-things
- Stars
- 1,544
- Forks
- 793
- Watchers
- 106
- Open issues
- 78
- Contributors
- 13
- Owner type
- Organization
- Primary language
- C
- License
- EPL-2.0 OR BSD-3-Clause
- Repository last updated
- Jul 3, 2026
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- ClamAV7,314 Stars
1 shared tag(s) · 1 shared category(s) · Same language
scan files, archives, and mail with signature databases to detect viruses, trojans, malware, and other malicious content
C - Apache HTTP Server4,035 Stars
1 shared tag(s) · 1 shared category(s) · Same language
run web serving, TLS, virtual hosts, and reverse proxying through a modular server configuration
C - mini-rv32ima2,178 Stars
1 shared tag(s) · 1 shared category(s) · Same language
embed a tiny RV32IMA emulator from a single C header
C - Hoppscotch80,560 Stars
1 shared tag(s) · 1 shared category(s)
Span REST, GraphQL, realtime requests, and collection tests across web, desktop, CLI, and self-hosted API workflows
TypeScript - Arduino IDE 1.x14,655 Stars
1 shared tag(s) · 1 shared category(s)
edit, compile, and upload sketches to Arduino boards from one desktop IDE
Java - Linux kernel250,960 Stars
1 shared tag(s) · Same language
Manage CPUs, memory, processes, filesystems, networking, and devices while exposing system calls to userspace
C
Report incorrect information
Tell us if any listing information is incorrect or outdated.