In short
To your devices nothing changes: it is an ordinary MQTT broker on ports 1883 and 8883, and clients and libraries stay as they are. The difference is in how you run the broker.
- A built-in web dashboard: clients and sessions, subscriptions, retained messages, a live message stream, traffic, users, ACLs, bridges and TLS — in one place, in seven languages.
- Changes apply on the fly: a new user, ACL rule, bridge or certificate takes effect without a restart and without editing configuration by hand.
- External user sources are built in: MySQL/MariaDB, SQLite, CSV, JWT and an HTTP service are switched in the dashboard — no plugins to build.
- A REST API for everything the dashboard does: one POST creates a device together with its permissions.
Compared with Mosquitto
The comparison is with stock open-source Mosquitto — what the package installs, without third-party add-ons.
| ELX-MQTT Broker | Eclipse Mosquitto | |
|---|---|---|
| Licence | Free, including in commercial products; closed source | Open source (EPL-2.0 / EDL-1.0) |
| Implementation | Go, one static binary with no dependencies | C, very compact |
| MQTT versions | 3.1.1 and 5.0 on one port | 3.1, 3.1.1 and 5.0 |
| Web interface | Built in | Not part of the standard distribution |
| Users and ACLs | In the dashboard or over the REST API, deny-by-default, $u/# pattern | Password and ACL files, or the dynamic security plugin with mosquitto_ctrl |
| External user sources | MySQL/MariaDB, SQLite, CSV, JWT, HTTP — built in | Through plugins |
| Bridges | Configured in the dashboard, with counters | Sections in mosquitto.conf |
| TLS certificate | The SSL tab: upload files or give paths, swapped without a restart | Paths in mosquitto.conf |
| REST API | Built in, with read-only tokens | No |
| Delayed publish | $delayed/{seconds}/{topic}, as in EMQX | No |
| WebSocket | Yes, on the dashboard port at /mqtt | Yes, as a separate listener |
| Clustering | No, a single process | No |
| Windows | Installer with a service and firewall rules, or a portable .exe | Official installer |
| Linux | APT repository for Debian and Ubuntu: amd64, arm64, armhf | Packaged in nearly every distribution |
When to stay with Mosquitto
- You need open source — to read, audit or modify the broker. ELX-MQTT Broker is closed source.
- Very small hardware: an OpenWrt router or a device with a few megabytes of memory. Mosquitto takes hundreds of kilobytes; the ELX executable is about 13 MB.
- Your configuration already lives in git and is rolled out with Ansible or similar — Mosquitto's text config is the more natural fit.
- You need a cluster. Then look at neither Mosquitto nor ELX, but at EMQX, HiveMQ or VerneMQ.
Moving from Mosquitto
Devices need no changes: address, ports and protocol stay the same. Only what lived in the Mosquitto configuration has to move.
- Run ELX alongside on other ports and try it with a few devices:
-mqtt :1884 -mqtt-tls :8884 -web :8567. - Users are created under Users or by a script calling
POST /api/users. If your accounts already live in MySQL/MariaDB, connect that database as a source instead of moving them. - ACLs: Mosquitto's
%ubecomes$u. Rules are checked top to bottom until the first match; anything not allowed is denied. - Bridges are created in the dashboard: address, login, TLS and “filter + direction + QoS” rules.
- The certificate is uploaded on the SSL tab or given as paths to the same files.
Once everything checks out, stop Mosquitto and give the broker the standard ports 1883 and 8883.
Questions
Will devices set up for Mosquitto work with ELX-MQTT Broker?
Yes. Both brokers implement the same MQTT 3.1.1 and 5.0 protocol, so clients and libraries need no changes — the same address, port and credentials are enough.
Does Mosquitto have a web interface?
Stock open-source Mosquitto ships without one: it is configured through mosquitto.conf, password and ACL files, or the dynamic security plugin via mosquitto_ctrl. ELX-MQTT Broker has a dashboard built in.
Is ELX-MQTT Broker open source?
No. The code is closed, but the broker is free without restrictions, including in commercial products, and does not limit the number of devices or messages.
Can users be migrated from Mosquitto?
Mosquitto stores passwords as hashes, so accounts are created again — by hand in the dashboard or by a script over the REST API. If accounts are kept in MySQL or MariaDB, that database can be connected as an authentication source.
Which is faster, ELX-MQTT Broker or Mosquitto?
We have not compared them on the same hardware. Our own measurements, with the method, are in the load-test report: up to 30,000 concurrent connections and delivery of up to 1.35M messages per second.