The most scalable and reliable MQTT broker for AI, IoT, IIoT and connected vehicles
16,699
stars
29,983
commits
Erlang
primary language
Sep 8, 2026
updated
EMQX is the world's most scalable and reliable MQTT platform, designed for high-performance, reliable, and secure IoT data infrastructure. It supports MQTT 5.0, 3.1.1, and 3.1, as well as other protocols like MQTT-SN, CoAP, LwM2M, and MQTT over QUIC. EMQX enables you to connect millions of IoT devices, process and route messages in real time, and integrate with a wide range of backend data systems. It's ideal for applications in AI, IoT, Industrial IoT (IIoT), connected vehicles, smart cities, and beyond.
Starting from v5.9.0, EMQX has unified all features from the previous Open Source and Enterprise editions into a single, powerful offering with the Business Source License (BSL) 1.1.
If you want to understand why we made the change, please read this blog post.
Please go to the License section for more details about BSL 1.1.
EMQX delivers a powerful set of capabilities for modern connected systems:
The simplest way to set up EMQX is to create a managed deployment with EMQX Cloud. You can try EMQX Cloud for free.
For comprehensive guidance, see the EMQX Cloud Documentation.
docker run -d --name emqx \
-p 1883:1883 -p 8083:8083 -p 8084:8084 \
-p 8883:8883 -p 18083:18083 \
emqx/emqx-enterprise:latest
Next, please follow the Install EMQX Using Docker guide for further instructions.
Please refer to the official EMQX Operator documentation for details.
If you prefer to install and manage EMQX yourself, you can download the latest version from the official site.
For more installation options, see the EMQX installation documentation
Please see our contributing guide.
For more organised improvement proposals, you can send pull requests to EIP.
The default branch master tracks the latest development.
Stable releases are tracked by release-XY branches, such as release-62 for version 6.2.N.
Build and run a release locally:
git clone https://github.com/emqx/emqx.git
cd emqx
make
_build/emqx-enterprise/rel/emqx/bin/emqx console
Build packages in _packages dir:
make emqx-enterprise-tgzmake emqx-enterprise-pkgPROFILE=emqx-enterprise make dockerEMQX versions follow the Major.Minor.Patch scheme (e.g. 6.1.2).
General Availability releases, listed on the official download catalog page.
5, 6): incremented for significant architectural changes that may
require special upgrade procedures or introduce backward-incompatible changes.6.0, 6.1, 6.2): new features and improvements. Each minor line
has a dedicated release-XY branch (e.g. release-62 for the 6.2.N series).6.1.0, 6.1.1, 6.1.2): cut from the matching release-XY
branch, containing bug fixes and low-risk improvements.Rolling upgrade between adjacent minor versions is supported — see the upgrade path matrix below.
Non-GA builds are published as tarballs, packages, and Docker images available for download, but are not listed on the official download catalog page.
-alpha.N (e.g. 6.2.0-alpha.1): early preview of a new minor line. Only
cut for the first release of a minor (e.g. 6.1.0, 6.2.0).-beta.N (e.g. 6.2.0-beta.1): feature-complete preview of a new minor
line. Only cut for the first release of a minor.-rc.N (e.g. 6.1.2-rc.1): release candidate. May be cut before any
release version — either a new minor (X.Y.0-rc.N) or a patch (X.Y.Z-rc.N).-patch.N (e.g. 6.1.2-patch.1): on-demand bug fix build produced for
paying customers between regular patch releases.Below are the matrices of supported rolling upgrade paths since 5.0. Tables are split for readability; the late-v5 versions (5.8 – 5.10) appear in both.
? e.g. 6.3? are future releases.See release notes for detailed information.
| From\To | 5.1 | 5.2 | 5.3 | 5.4 | 5.5 | 5.6 | 5.7 | 5.8 | 5.9 | 5.10 |
|---|---|---|---|---|---|---|---|---|---|---|
| 5.0 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⚠️[1] | ❌[2] |
| 5.1 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌[2] |
| 5.2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌[2] | |
| 5.3 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌[2] | ||
| 5.4 | ✅ | ✅ | ⚠️ | ✅ | ✅ | ✅ | ✅ | |||
| 5.5 | ✅ | ⚠️ | ✅ | ✅ | ✅ | ✅ | ||||
| 5.6 | ✅ | ✅ | ✅ | ✅ | ✅ | |||||
| 5.7 | ✅ | ✅ | ✅ | ✅ | ||||||
| 5.8 | ✅ | ⚠️[3] | ⚠️[3] | |||||||
| 5.9 | ✅ | ✅ | ||||||||
| 5.10 | ✅ |
etc/emqx.conf and data/configs/cluster-override.conf) before upgrade.| From\To | 5.8 | 5.9 | 5.10 | 6.0 | 6.1 | 6.2 | 6.3? |
|---|---|---|---|---|---|---|---|
| 5.8 | ✅ | ⚠️[3] | ⚠️[3] | ⚠️[4] | ⚠️[4] | ⚠️[4] | ⚠️[4] |
| 5.9 | ✅ | ✅ | ⚠️[4] | ⚠️[4] | ⚠️[4] | ⚠️[4] | |
| 5.10 | ✅ | ⚠️[4] | ⚠️[4] | ⚠️[4] | ⚠️[4] | ||
| 6.0 | ✅ | ✅ | ✅ | ✅ | |||
| 6.1 | ✅ | ✅ | ✅ | ||||
| 6.2 | ✅ | ✅ | |||||
| 6.3? | ✅ |
Effective from version 5.9.0, EMQX has transitioned from Apache 2.0 to the Business Source License (BSL) 1.1.
Starting with EMQX v5.9.0, due to the license change and the unification of all features, deploying an EMQX cluster (more than 1 node) requires a license file to be loaded.
Please refer to the following resources for details on license acquisition, application, and the specifics of the BSL 1.1.
(top 30 of 135)
Erlang
95.3%
Shell
1.5%
The most scalable and reliable MQTT broker for AI, IoT, IIoT and connected vehicles
16,699
stars
29,983
commits
Erlang
primary language
Sep 8, 2026
updated
EMQX is the world's most scalable and reliable MQTT platform, designed for high-performance, reliable, and secure IoT data infrastructure. It supports MQTT 5.0, 3.1.1, and 3.1, as well as other protocols like MQTT-SN, CoAP, LwM2M, and MQTT over QUIC. EMQX enables you to connect millions of IoT devices, process and route messages in real time, and integrate with a wide range of backend data systems. It's ideal for applications in AI, IoT, Industrial IoT (IIoT), connected vehicles, smart cities, and beyond.
Starting from v5.9.0, EMQX has unified all features from the previous Open Source and Enterprise editions into a single, powerful offering with the Business Source License (BSL) 1.1.
If you want to understand why we made the change, please read this blog post.
Please go to the License section for more details about BSL 1.1.
EMQX delivers a powerful set of capabilities for modern connected systems:
The simplest way to set up EMQX is to create a managed deployment with EMQX Cloud. You can try EMQX Cloud for free.
For comprehensive guidance, see the EMQX Cloud Documentation.
docker run -d --name emqx \
-p 1883:1883 -p 8083:8083 -p 8084:8084 \
-p 8883:8883 -p 18083:18083 \
emqx/emqx-enterprise:latest
Next, please follow the Install EMQX Using Docker guide for further instructions.
Please refer to the official EMQX Operator documentation for details.
If you prefer to install and manage EMQX yourself, you can download the latest version from the official site.
For more installation options, see the EMQX installation documentation
Please see our contributing guide.
For more organised improvement proposals, you can send pull requests to EIP.
The default branch master tracks the latest development.
Stable releases are tracked by release-XY branches, such as release-62 for version 6.2.N.
Build and run a release locally:
git clone https://github.com/emqx/emqx.git
cd emqx
make
_build/emqx-enterprise/rel/emqx/bin/emqx console
Build packages in _packages dir:
make emqx-enterprise-tgzmake emqx-enterprise-pkgPROFILE=emqx-enterprise make dockerEMQX versions follow the Major.Minor.Patch scheme (e.g. 6.1.2).
General Availability releases, listed on the official download catalog page.
5, 6): incremented for significant architectural changes that may
require special upgrade procedures or introduce backward-incompatible changes.6.0, 6.1, 6.2): new features and improvements. Each minor line
has a dedicated release-XY branch (e.g. release-62 for the 6.2.N series).6.1.0, 6.1.1, 6.1.2): cut from the matching release-XY
branch, containing bug fixes and low-risk improvements.Rolling upgrade between adjacent minor versions is supported — see the upgrade path matrix below.
Non-GA builds are published as tarballs, packages, and Docker images available for download, but are not listed on the official download catalog page.
-alpha.N (e.g. 6.2.0-alpha.1): early preview of a new minor line. Only
cut for the first release of a minor (e.g. 6.1.0, 6.2.0).-beta.N (e.g. 6.2.0-beta.1): feature-complete preview of a new minor
line. Only cut for the first release of a minor.-rc.N (e.g. 6.1.2-rc.1): release candidate. May be cut before any
release version — either a new minor (X.Y.0-rc.N) or a patch (X.Y.Z-rc.N).-patch.N (e.g. 6.1.2-patch.1): on-demand bug fix build produced for
paying customers between regular patch releases.Below are the matrices of supported rolling upgrade paths since 5.0. Tables are split for readability; the late-v5 versions (5.8 – 5.10) appear in both.
? e.g. 6.3? are future releases.See release notes for detailed information.
| From\To | 5.1 | 5.2 | 5.3 | 5.4 | 5.5 | 5.6 | 5.7 | 5.8 | 5.9 | 5.10 |
|---|---|---|---|---|---|---|---|---|---|---|
| 5.0 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ⚠️[1] | ❌[2] |
| 5.1 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌[2] |
| 5.2 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌[2] | |
| 5.3 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌[2] | ||
| 5.4 | ✅ | ✅ | ⚠️ | ✅ | ✅ | ✅ | ✅ | |||
| 5.5 | ✅ | ⚠️ | ✅ | ✅ | ✅ | ✅ | ||||
| 5.6 | ✅ | ✅ | ✅ | ✅ | ✅ | |||||
| 5.7 | ✅ | ✅ | ✅ | ✅ | ||||||
| 5.8 | ✅ | ⚠️[3] | ⚠️[3] | |||||||
| 5.9 | ✅ | ✅ | ||||||||
| 5.10 | ✅ |
etc/emqx.conf and data/configs/cluster-override.conf) before upgrade.| From\To | 5.8 | 5.9 | 5.10 | 6.0 | 6.1 | 6.2 | 6.3? |
|---|---|---|---|---|---|---|---|
| 5.8 | ✅ | ⚠️[3] | ⚠️[3] | ⚠️[4] | ⚠️[4] | ⚠️[4] | ⚠️[4] |
| 5.9 | ✅ | ✅ | ⚠️[4] | ⚠️[4] | ⚠️[4] | ⚠️[4] | |
| 5.10 | ✅ | ⚠️[4] | ⚠️[4] | ⚠️[4] | ⚠️[4] | ||
| 6.0 | ✅ | ✅ | ✅ | ✅ | |||
| 6.1 | ✅ | ✅ | ✅ | ||||
| 6.2 | ✅ | ✅ | |||||
| 6.3? | ✅ |
Effective from version 5.9.0, EMQX has transitioned from Apache 2.0 to the Business Source License (BSL) 1.1.
Starting with EMQX v5.9.0, due to the license change and the unification of all features, deploying an EMQX cluster (more than 1 node) requires a license file to be loaded.
Please refer to the following resources for details on license acquisition, application, and the specifics of the BSL 1.1.
(top 30 of 135)
Erlang
95.3%
Shell
1.5%