finds.dev← search

// the find

fhmq/hmq

★ 1,389 · Go · Apache-2.0 · updated May 2026

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.

View on GitHub →

// 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 →