Complete MQTT 5.0
Every packet property, topic aliases, shared subscriptions via $share, subscription identifiers, No Local, Retain Handling, Will Delay, Message Expiry, reason codes, the AUTH packet.
ELX-MQTT Broker is a Go broker with a full web dashboard. MQTT 3.1.1 and 5.0 are implemented from scratch, completely, with no third-party libraries. One binary, no dependencies: install it and it runs.
Debian · Ubuntu · Windows x64 · Linux arm64 and armhf
$ sudo apt-get install elxmqttbroker Setting up elxmqttbroker (1.0.30) ... Created symlink /etc/systemd/system/multi-user.target.wants/elxmqttbroker.service ELX MQTT Broker 1.0.30 — listening on :1883, :8883, dashboard on :8567 state restored retained=128 sessions=7 subscriptions=34 delayed=2
The broker does not just deliver messages, it shows exactly what is happening: who is connected, which topics are alive, what the limiters drop.
Every packet property, topic aliases, shared subscriptions via $share, subscription identifiers, No Local, Retain Handling, Will Delay, Message Expiry, reason codes, the AUTH packet.
Message-rate and traffic charts, machine health, active topics and an event feed — streamed over WebSocket, with no page reloads.
ACL rules of filter + access + allow or deny, deny-by-default, and a $u placeholder that confines a client to its own branch in a single line.
Server-level two-way topic forwarding: out/in/both directions, prefixes, TLS, loop protection and automatic reconnect.
Publishing to $delayed/60/topic reaches subscribers a minute later. EMQX-compatible, survives a restart, and the queue is visible and cancellable in the dashboard.
A per-connection token bucket plus per-topic-pattern rules: thin a stream down to a rate (keeping the latest value) or drop it entirely.
The built-in list, MariaDB/MySQL, SQLite, CSV, JWT and an external HTTP service. Switching happens live, without restarting the broker.
Everything the dashboard does is available with a bearer token: provision devices and grant permissions from your own system. Read-only tokens are supported.
Retained messages, persistent sessions, offline queues and delayed messages live in pure-Go SQLite — no CGO and no external database.
An APT repository package for Debian and Ubuntu, a ready binary for Windows. No Docker, no runtime, no libraries to install.
Add the key and the repository
sudo wget -qO /usr/share/keyrings/elx-repo.gpg https://repo.um-d.ru/elx-repo.gpg
echo "deb [signed-by=/usr/share/keyrings/elx-repo.gpg] https://repo.um-d.ru stable main" | sudo tee /etc/apt/sources.list.d/elx-repo.list
Refresh the package list
sudo apt-get update
Install the broker
sudo apt-get install elxmqttbroker
Download the installer from the download page
Run it and pick “Install as a Windows service”
Open the dashboard and sign in as admin / admin
http://localhost:8567
Once installed, the dashboard waits on :8567, MQTT on :1883 and MQTT over TLS on :8883. The default login is admin / admin — change it on first sign-in.
Dark and light themes, seven interface languages, live charts. The dashboard is part of the broker — there is nothing separate to install.
The codec encodes and decodes all 15 packet types, and topics are matched against the table from the specification.
Stress-tested on two benches — over the network and loopback. Just the highlights here; the full report with method and tables is one click away.
The broker is free, the number of devices and messages is unlimited, and no sign-up is required.