finds.dev← search

// the find

knolleary/pubsubclient

★ 4,015 · C++ · MIT · updated Jun 2026

A client library for the Arduino Ethernet Shield that provides support for MQTT.

The de facto MQTT client for Arduino Ethernet/WiFi shields and ESP8266/ESP32 boards over the past decade. It handles basic pub/sub over MQTT 3.1/3.1.1 with a tiny footprint suited to microcontrollers.

Extremely wide hardware compatibility layer built on the Arduino Client interface, so it works across Ethernet shields, WiFi shields, Yun, Galileo/Edison, ESP8266, and ESP32 without per-board forks. Small, predictable memory footprint via a fixed buffer size that's configurable at compile time (MQTT_MAX_PACKET_SIZE) or runtime (setBufferSize). Has an actual BDD-style C++ test suite under tests/ with a Python-driven test harness, which is more than most Arduino libraries bother with.

Officially unmaintained as of 2026 per the README's own caution banner — the author states plainly he no longer has a setup to develop, test, or maintain it, so any bug or security issue is now on you to fork and fix. Only supports QoS 0 publish (QoS 1 subscribe at best), no QoS 2, no persistent sessions, no TLS built in — all things a production IoT deployment will eventually need. 256-byte default message buffer is easy to blow past silently if you don't know to bump MQTT_MAX_PACKET_SIZE, and the fixed keepalive/version defaults are the kind of thing that quietly breaks against newer brokers enforcing MQTT 5.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →