OSS Tanbou

run an MQTT 5.0/3.1.1/3.1 broker with pub/sub CLI tools and C/C++ client libraries for lightweight messaging

About these scores

OSS scale score is an unbounded metric that log-compresses and weights Stars, Watchers, Forks, and Contributors. Discovery score is the current OSS scale score minus the score at discovery. Update pace is commits in the last 30 days, growth momentum is the OSS scale score difference within the recent observation window, and OSS health is a 0–100 rating based on available recency, Community Health, and release data.

Stars
11,245
Primary language
C
License
EPL-2.0 OR BSD-3-Clause
Repository last updated
Sep 3, 2026
On this page

Overview

Eclipse Mosquitto is a broker implementation for MQTT 5.0, 3.1.1, and 3.1. It includes mosquitto_pub and mosquitto_sub CLI tools, C/C++ client libraries, and broker features for authentication, ACLs, plugins, persistence, WebSockets, and TLS.

Features and best fit

Based on official documentation; not hands-on tested · Content checked:

Key features

Broker MQTT 5.0, 3.1.1, and 3.1 publish/subscribe traffic

Mosquitto implements multiple MQTT protocol versions and routes topic-based publications between connected clients.

Sources: [1]

Exercise publish, subscribe, and request/reply flows from the CLI

mosquitto_pub, mosquitto_sub, and mosquitto_rr make it possible to verify topics, QoS, and connection behavior before integrating an application.

Sources: [1]

Extend the broker with TLS, WebSockets, persistence, and plugins

Build and configuration options cover TLS, WebSockets, SQLite persistence, authentication and ACL plugins, listener policy, and broker bridges.

Sources: [1][2]

Best fit

Fits self-hosted lightweight pub/sub for IoT devices and services

Mosquitto works well as an MQTT broker for telemetry, commands, local gateways, and lightweight service messaging.

Sources: [1]

Before adoption

Configure authentication and listener policy before remote exposure

Starting without configuration enables anonymous access only from the local machine for initial testing. Remote listeners should be explicitly configured with authentication and authorization rather than exposing a public anonymous broker.

Sources: [1]

Review 2.1-series default changes and deprecations before upgrading

Version 2.1.0 changes the default max_packet_size to 2,000,000 bytes and deprecates acl_file and password_file in favor of plugin implementations, so existing broker configuration should be reviewed.

Sources: [2]

2.1.2 includes a persistence-plugin conflict guard and build fixes

Version 2.1.2 forbids enabling built-in persistence and a persistence plugin at the same time and includes OpenBSD and linking fixes, making v2.1.2 the stable baseline used here.

Sources: [3][2]

Official sources

  1. [1]Mosquitto 2.1.2 README(2026-10-04)
  2. [2]Mosquitto 2.1.2 ChangeLog(2026-10-04)
  3. [3]Mosquitto v2.1.2 signed tag(2026-10-04)
  4. [4]Mosquitto dual-license declaration(2026-10-04)
Supplemental curator note

Starting Mosquitto without a configuration is convenient for local testing because anonymous access is restricted to the local machine, but do not expose a broker publicly with anonymous access. The 2.1 series also changes defaults such as max_packet_size and deprecates password/ACL file options in favor of plugins, so review the changelog when upgrading from 2.0.

Try it in 3 steps

  1. 1

    Fetch the Mosquitto 2.1.2 source

    Pin the source checkout to signed tag v2.1.2.

    git clone --depth 1 --branch v2.1.2 https://github.com/eclipse-mosquitto/mosquitto.git mosquitto-2.1.2
  2. 2

    Configure a minimal broker-only CMake build

    Generate a broker-focused build without TLS, WebSockets, tests, docs, clients, apps, or plugins, using bundled dependencies where supported.

    cmake -S mosquitto-2.1.2 -B mosquitto-2.1.2/build -DWITH_TLS=OFF -DWITH_WEBSOCKETS=OFF -DWITH_TESTS=OFF -DWITH_DOCS=OFF -DWITH_CLIENTS=OFF -DWITH_APPS=OFF -DWITH_PLUGINS=OFF
  3. 3

    Build the broker binary and print help

    Validate the broker executable without opening a network listener.

    cmake --build mosquitto-2.1.2/build --target mosquitto && ./mosquitto-2.1.2/build/src/mosquitto -h
Check the official README

Growth

Growth trends · Last 30 days

11,245 Stars

Trend data is still being collected.

Development activity

Last 90 days · weekly

Commits (last 30 days)
0
Open PRs
112

Development activity is still being collected.

Built with

Categories and tags

GitHub data

GitHub dataView detailed GitHub data

GitHub Topics

  • mqtt
  • broker
  • mosquitto
  • eclipse-iot
  • iot
  • messaging
  • mqtt-broker
  • mqtt-client
  • mqtt-server
Stars
11,245
Forks
2,646
Watchers
275
Open issues
791
Contributors
170
Owner type
Organization
Primary language
C
Repository last updated
Sep 3, 2026
Write a related article

Share a guide or use case for this OSS in Markdown. Articles are published after administrator approval.

Report incorrect information

Tell us if any listing information is incorrect or outdated.

After reading this page, do you know what to do next?