// the find
wind-c/comqtt
A lightweight, high-performance go mqtt server(v3.0|v3.1.1|v5.0) supporting distributed cluster
comqtt is an embeddable MQTT broker written in Go, supporting v3.0, v3.1.1, and v5.0, with optional distributed clustering via Gossip and Raft. You can run it as a standalone binary or import it as a library and attach hooks to customize auth, storage, and packet handling. It targets IoT and smarthome projects where you want to own the broker rather than pay for a managed one.
Full MQTTv5 compliance tested against the Paho interoperability suite, with backward compat for v3.x — not just a partial implementation with a spec checkbox. The hook system is the standout design decision: hooks are stackable and cover the complete client/packet lifecycle (auth, ACL, publish, subscribe, disconnect, QoS flows), so adding custom logic doesn't require forking the core. QUIC transport support is genuinely uncommon in open-source MQTT brokers and matters for unreliable IoT links. Multiple auth backends (Redis, MySQL, PostgreSQL, HTTP) with configurable password hashing algorithms are all pluggable via the same hook interface, not bolted on.
The clustering story is confusing: there are two separate gossip backends (mlist and serf) and two Raft implementations (etcd and hashicorp), with no clear guidance on which combination to use in production — that's a lot of surface area to maintain and debug when things go wrong. The rule engine is on the roadmap but absent; without it, server-side message transformation and routing has to happen in your own hook code. The benchmark numbers are explicitly described in the README as using 'an unusual calculation' that isn't representative of real throughput, so the Mosquitto/EMQX comparisons are mostly noise. The default dashboard login is admin/admin — fine for development, but easy to ship to production unchanged, and the README only warns about AllowHook rather than this.