Eclipse Mosquitto is an open source MQTT broker that implements versions 5.0, 3.1.1, and 3.1 of the MQTT protocol.
Mosquitto addresses the need for a lightweight message broker in IoT and embedded systems. It works by accepting MQTT client connections, routing published messages to subscribed clients based on topic hierarchies, and managing the protocol handshake and session state. The broker supports multiple protocol versions and includes a C and C++ client library alongside command-line utilities for publishing, subscribing, and administration tasks like password management and broker control.
Mosquitto suits projects requiring a self-hosted MQTT infrastructure, from small embedded deployments to larger IoT networks. It is particularly appropriate for developers who need fine-grained control over broker configuration, authentication methods, and deployment environment. The project provides binary packages for multiple platforms and can be built from source using standard build tools. For teams evaluating options, the README emphasizes authentication as a critical consideration, documenting available authentication methods and a dynamic security plugin, and explicitly warns against running the broker with anonymous access in production.
The project maintains active issue tracking on GitHub. Documentation is comprehensive, with man pages available online covering broker configuration, client library APIs, and protocol features. The codebase is written in C and can be built on Windows and Mac using CMake or on other platforms using Make, with optional documentation generation requiring additional dependencies.