Go to file
Zaiming (Stone) Shi 61da68ff40 fix(emqx_schema): handshake_timeout is common for all listeners 2022-12-09 16:47:19 +01:00
.ci Merge remote-tracking branch 'origin/dev/ee5.0' into release-50 2022-12-09 11:45:52 +01:00
.github Merge remote-tracking branch 'origin/dev/ee5.0' into release-50 2022-12-09 11:45:52 +01:00
apps fix(emqx_schema): handshake_timeout is common for all listeners 2022-12-09 16:47:19 +01:00
bin chore: make remsh node name away from the atom DOS attack 2022-11-17 16:41:26 +08:00
changes fix(emqx_schema): handshake_timeout is common for all listeners 2022-12-09 16:47:19 +01:00
deploy Merge pull request #9509 from Rory-Z/release-50 2022-12-09 18:04:56 +08:00
lib-ee Merge remote-tracking branch 'origin/dev/ee5.0' into release-50 2022-12-09 11:45:52 +01:00
rel docs: fix typos 2022-10-27 20:09:31 +02:00
scripts Merge remote-tracking branch 'origin/dev/ee5.0' into release-50 2022-12-09 11:45:52 +01:00
.editorconfig add editorconfig for emqx 2018-09-03 14:03:20 +08:00
.formatter.exs style(format): format elixir files 2021-12-27 10:51:12 -03:00
.gitattributes chore: add a pre-commit hook to auto format erlang code 2022-04-27 08:01:55 +02:00
.gitignore build: stop trying to fetch rebar and build deps on each build 2022-10-27 19:04:13 +02:00
.tool-versions chore: bump asdf erlang version 2022-10-14 11:19:25 +02:00
APL.txt chore: add BSL.txt 2021-12-29 13:35:49 +01:00
CONTRIBUTING.md style: ensure newline at EOF for all files 2021-11-04 14:40:14 +01:00
Dockerfile.ubuntu20.04.runner docs: remove port 8081 2022-10-05 17:15:19 +02:00
Dockerfile.ubuntu20.04.runner.dockerignore test: Dockerfile:s to build test images 2022-06-12 20:18:48 +02:00
LICENSE chore: Update license file 2022-07-10 10:01:01 +02:00
Makefile Merge remote-tracking branch 'origin/dev/ee5.0' into release-50 2022-12-09 11:45:52 +01:00
NOTICE docs: More EMQ X -> EMQX rename in descriptive strings 2022-02-15 22:39:11 +01:00
PLUGIN.md docs: More EMQ X -> EMQX rename in descriptive strings 2022-02-15 22:39:11 +01:00
README-CN.md docs: remove port 8081 2022-10-05 17:15:19 +02:00
README-JP.md chore: `EMQ X` -> `EMQX` in icons 2022-07-25 15:13:04 +08:00
README-RU.md docs: remove port 8081 2022-10-05 17:15:19 +02:00
README.md docs: remove port 8081 2022-10-05 17:15:19 +02:00
Windows.md docs: add a note to Windows.md 2022-07-19 09:01:04 +02:00
build Merge tag 'v5.0.10' into dev/ee5.0 2022-11-16 16:20:30 +01:00
elvis.config feat(rule_engine): add jq function to the rule engine 2022-05-04 17:09:16 +02:00
git-blame-ignore-revs chore: module and fun call rename 2022-08-02 16:59:56 +08:00
mix.exs fix: upgrade ehttpc from 0.4.0 to 0.4.2 for performance improvement 2022-12-09 12:55:41 +01:00
pkg-vsn.sh ci: release only the default packages 2022-11-17 21:56:40 +01:00
rebar.config fix: upgrade ehttpc from 0.4.0 to 0.4.2 for performance improvement 2022-12-09 12:55:41 +01:00
rebar.config.erl Merge remote-tracking branch 'origin/dev/ee5.0' into 1116-sync-v5.0.10-to-ee50 2022-11-18 19:23:31 +01:00

README.md

EMQX

GitHub Release Build Status Coverage Status Docker Pulls Slack Discord Twitter YouTube

English | 简体中文 | 日本語 | русский

EMQX is the most scalable and popular open-source MQTT broker with a high performance that connects 100M+ IoT devices in 1 cluster at 1ms latency. Move and process millions of MQTT messages per second.

The EMQX v5.0 has been verified in test scenarios to scale to 100 million concurrent device connections, which is a critically important milestone for IoT designers. It also comes with plenty of exciting new features and huge performance improvements, including a more powerful rule engine, enhanced security management, Mria database extension, and much more to enhance the scalability of IoT applications.

During the last several years, EMQX has gained popularity among IoT companies and is used by more than 20,000 global users from over 50 countries, with more than 100 million IoT device connections supported worldwide.

For more information, please visit EMQX homepage.

Get Started

EMQX Cloud

The simplest way to set up EMQX is to create a managed deployment with EMQX Cloud. You can try EMQX Cloud for free, no credit card required.

Run EMQX using Docker

docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:latest

Next, please follow the getting started guide to tour the EMQX features.

Run EMQX cluster on kubernetes

For details: EMQX Operator.

More installation options

If you prefer to install and manage EMQX yourself, you can download the latest version from www.emqx.io/downloads.

For more installation options, see the EMQX installation documentation.

Documentation

The EMQX documentation is available at www.emqx.io/docs/en/latest/.

The EMQX Enterprise documentation is available at docs.emqx.com/en/.

Contributing

Please see our contributing.md.

For more organised improvement proposals, you can send pull requests to EIP.

Get Involved

Resources

  • MQTT client programming

    A series of blogs to help developers get started quickly with MQTT in PHP, Node.js, Python, Golang, and other programming languages.

  • MQTT SDKs

    We have selected popular MQTT client SDKs in various programming languages and provided code examples to help you quickly understand the use of MQTT clients.

  • MQTT X

    An elegant cross-platform MQTT 5.0 client tool that provides desktop, command line, and web to help you develop and debug MQTT services and applications faster.

  • Internet of Vehicles

    Build a reliable, efficient, and industry-specific IoV platform based on EMQ's practical experience, from theoretical knowledge such as protocol selection to practical operations like platform architecture design.

Build From Source

The master branch is for the latest version 5 release, checkout branch main-v4.3 for version 4.3 and main-v4.4 for version 4.4.

EMQX requires OTP 22 or 23 for version 4.3, and OTP 24 for 4.4 and 5.0.

git clone https://github.com/emqx/emqx.git
cd emqx
make
_build/emqx/rel/emqx/bin/emqx console

For 4.2 or earlier versions, release has to be built from another repo.

git clone https://github.com/emqx/emqx-rel.git
cd emqx-rel
make
_build/emqx/rel/emqx/bin/emqx console

Building on Apple silicon (M1, M2)

Homebrew on Apple silicon changed default location of it's home directory from /usr/local to /opt/homebrew and as a result a few things broke in the process.

Concerning EMQX, when you install unixodbc package (one of the dependencies) via Homebrew, and build Erlang/OTP with kerl, kerl will not be able to find unixodbc.

Here is how to solve it:

brew install unixodbc kerl
sudo ln -s $(realpath $(brew --prefix unixodbc)) /usr/local/odbc
export CC="/usr/bin/gcc -I$(brew --prefix unixodbc)/include"
export LDFLAGS="-L$(brew --prefix unixodbc)/lib"
kerl build 24.3
mkdir ~/.kerl/installations
kerl install 24.3 ~/.kerl/installations/24.3
. ~/.kerl/installations/24.3/activate

Then you can proceed with make.

License

See LICENSE.