// the find
fhmq/hmq
High performance mqtt broker
hmq is a MQTT 3.1.1 broker written in Go with clustering, WebSocket, TLS, Kafka bridging, and HTTP auth plugin support. It targets IoT workloads where you want something lighter than EMQ X but need more than mosquitto. Aimed at teams comfortable operating Go services who need a self-hosted broker they can actually read.
QoS 0/1 with a worker-pool model that avoids per-connection goroutine explosion — the fixed pool in broker/fixpool.go is a sensible design for high client counts. Kafka bridge is genuinely useful: regex-based topic routing to Kafka means you can fan MQTT traffic into a stream pipeline without a sidecar. Plugin interface for auth (file-based ACL or HTTP callback) is clean enough to swap without touching broker code. Multi-platform CI across Linux, macOS, and Windows with GitHub Actions is a good sign for a small project.
QoS 2 is absent — the README quietly omits it, which is a dealbreaker for any application where exactly-once delivery matters. Sessions are in-memory only (broker/lib/sessions/memprovider.go), so a broker restart drops all persistent session state and retained messages survive only as long as the process does. Last commit activity is sparse and the codebase references surgemq (archived in 2019) as its foundation, which means you're inheriting technical debt from a dead upstream. No benchmark numbers are published despite 'high performance' being the headline claim — you have to trust it.