finds.dev← search

// the find

moquette-io/moquette

★ 2,442 · Java · Apache-2.0 · updated Jun 2026

Java MQTT lightweight broker

Moquette is an embeddable Java MQTT broker built on Netty, supporting both MQTT 3.1/3.1.1 and most of MQTT 5. It's aimed at Java applications that need to run a broker in-process — think IoT gateways, test harnesses, or edge nodes — rather than deploying a standalone broker like Mosquitto or HiveMQ.

The embeddable design is the real differentiator: you get a `Server` class you can start programmatically with a `FluentConfig`, no external process required. The CTrie-based subscription directory is a solid lock-free concurrent data structure for topic matching. The interception API (`InterceptHandler`) lets you hook into connect/disconnect/publish/subscribe events cleanly without forking the broker. MQTT 5 support is genuine — flow control, shared subscriptions, will delay, topic aliases, and message expiry are all there, not just stubs.

Persistence is H2 or a custom segment-file queue — there's no PostgreSQL or Redis backend, so you're either accepting an embedded database with known concurrency limits or building your own `IQueueRepository`. Clustering is not supported at all; if you need horizontal scale you're on your own. The documentation site hasn't kept pace with MQTT 5 additions, so you'll end up reading integration tests to figure out what's actually wired up. Distribution still goes through JitPack rather than Maven Central, which is a minor friction point for enterprise environments with strict artifact repository policies.

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 →