finds.dev← search

// the find

eclipse-paho/paho.mqtt.java

★ 2,291 · Java · NOASSERTION · updated Aug 2024

Eclipse Paho Java MQTT client library. Paho is an Eclipse IoT project.

Eclipse Paho is the reference Java MQTT client, covering both MQTTv3 and MQTTv5 with sync and async APIs. It's what you reach for when you need MQTT on the JVM and don't want to write wire protocol code yourself. Widely deployed in embedded/IoT Java stacks and Android.

Both MQTTv3 and MQTTv5 are implemented in separate modules, so you can target the exact protocol version your broker supports. The async/sync API split is clean — MqttAsyncClient does callbacks properly, MqttClient is a thin synchronous wrapper rather than a reimplementation. Offline message buffering with DisconnectedMessageBuffer is built in, which matters for unreliable IoT network conditions. The wire protocol implementation is self-contained with no heavy dependencies, keeping it usable on constrained environments like Android.

Development has essentially stopped — last push was August 2024 and the project has been in low-activity maintenance mode for years; open issues with no response are common. The v3 client internals use raw threads and shared mutable state that predates modern Java concurrency idioms; integrating it with virtual threads or reactive stacks is awkward. The MQTTv5 client module feels bolted on rather than designed-in — it doesn't share a common interface hierarchy with the v3 client, so swapping protocol versions means rewriting call sites. CI still references Travis and the sample code in the README points to iot.eclipse.org which has been decommissioned.

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 →