MQTT has become the de facto messaging protocol for constrained devices — sensors, home automation controllers, embedded systems where bandwidth and processing power are limited. When you need a message broker that respects those constraints, the protocol itself matters less than the broker running it. That's where this project comes in.

Enter Mosquitto

Mosquitto is a lightweight open-source MQTT broker built specifically for IoT-style messaging. It exists to handle the publish/subscribe pattern that MQTT uses, letting devices talk to each other without needing a heavy application server. It's not trying to be a general-purpose message queue. It's purpose-built for one thing: getting small payloads between devices reliably.

The interesting bits

The README describes it as lightweight, and that's not marketing fluff. Mosquitto keeps its footprint small by avoiding unnecessary abstractions. It speaks MQTT cleanly, handles persistent sessions, and supports both QoS 0 and QoS 1 delivery guarantees. For a project whose main audience is embedded or resource-constrained environments, this restraint is the point. It doesn't try to add features that would bloat the binary or complicate configuration.

Another design choice worth noting: it's built to be run as a standalone daemon or integrated into existing infrastructure. There's no requirement for a full container orchestration stack. You can drop it onto a Raspberry Pi or a headless Linux box and it just works. That simplicity is what makes it the go-to choice in many IoT stacks.

Caveats

The README is upfront about scope. Mosquitto is a broker, not an application platform. It won't handle complex routing logic, message transformation, or multi-tenant isolation out of the box. If your use case involves enterprise-grade message delivery with advanced monitoring and auth layers, you'll likely need something heavier — or you'll be layering tooling on top yourself. The project is also C-based, which means cross-compilation for exotic architectures is possible but not the primary focus.

If you want to run it

The project requires a POSIX system and a basic MQTT client library to test with. Prerequisites and installation commands are documented in the project's README — grab the link from the source below if you want the exact steps.

Honest take

Mosquitto does one job and does it without ceremony. It's the kind of software that earns trust by not surprising you. If you need an MQTT broker for a constrained environment and you don't want to maintain a sprawling stack, this is the obvious candidate. Just know it won't hand you enterprise features on a plate.

Eclipse Mosquitto