142 lines
4.5 KiB
Markdown
142 lines
4.5 KiB
Markdown
# EMQ X Broker
|
||
|
||
[](https://github.com/emqx/emqx/releases)
|
||
[](https://travis-ci.org/emqx/emqx)
|
||
[](https://coveralls.io/github/emqx/emqx?branch=master)
|
||
[](https://hub.docker.com/r/emqx/emqx)
|
||
[](https://slack-invite.emqx.io)
|
||
[](https://twitter.com/EMQTech)
|
||
[](https://www.youtube.com/channel/UC5FjR77ErAxvZENEWzQaO5Q)
|
||
|
||
[](https://www.emqx.io/careers)
|
||
|
||
English | [简体中文](./README-CN.md) | [日本語](./README-JP.md) | [русский](./README-RU.md)
|
||
|
||
*EMQ X* broker is a fully open source, highly scalable, highly available distributed MQTT messaging broker for IoT, M2M and Mobile applications that can handle tens of millions of concurrent clients.
|
||
|
||
Starting from 3.0 release, *EMQ X* broker fully supports MQTT V5.0 protocol specifications and backward compatible with MQTT V3.1 and V3.1.1, as well as other communication protocols such as MQTT-SN, CoAP, LwM2M, WebSocket and STOMP. The 3.0 release of the *EMQ X* broker can scaled to 10+ million concurrent MQTT connections on one cluster.
|
||
|
||
- For full list of new features, please read [EMQ X Release Notes](https://github.com/emqx/emqx/releases).
|
||
- For more information, please visit [EMQ X homepage](https://www.emqx.io).
|
||
|
||
## Installation
|
||
|
||
The *EMQ X* broker is cross-platform, which supports Linux, Unix, macOS and Windows. It means *EMQ X* can be deployed on x86_64 architecture servers and ARM devices like Raspberry Pi.
|
||
|
||
See more details for building and running *EMQ X* on Windows in [Windows.md](./Windows.md)
|
||
|
||
#### Installing via EMQ X Docker Image
|
||
|
||
```
|
||
docker run -d --name emqx -p 1883:1883 -p 8081:8081 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx
|
||
```
|
||
|
||
#### Installing via Binary Package
|
||
|
||
Get the binary package of the corresponding OS from [EMQ X Download](https://www.emqx.io/downloads) page.
|
||
|
||
- [Single Node Install](https://docs.emqx.io/en/broker/latest/getting-started/install.html)
|
||
- [Multi Node Install](https://docs.emqx.io/en/broker/latest/advanced/cluster.html)
|
||
|
||
|
||
## Build From Source
|
||
|
||
The *EMQ X* broker requires Erlang/OTP R21+ to build since 3.0 release.
|
||
|
||
For 4.3 and later versions.
|
||
|
||
```bash
|
||
git clone https://github.com/emqx/emqx.git
|
||
cd emqx
|
||
make
|
||
_build/emqx/rel/emqx/bin console
|
||
```
|
||
|
||
For earlier versions, release has to be built from another repo.
|
||
|
||
```bash
|
||
git clone https://github.com/emqx/emqx-rel.git
|
||
cd emqx-rel
|
||
make
|
||
_build/emqx/rel/emqx/bin/emqx console
|
||
```
|
||
|
||
## Quick Start
|
||
|
||
If emqx is built from source, `cd _build/emqx/rel/emqx`.
|
||
Or change to the installation root directory if emqx is installed from a release package.
|
||
|
||
```bash
|
||
# Start emqx
|
||
./bin/emqx start
|
||
|
||
# Check Status
|
||
./bin/emqx_ctl status
|
||
|
||
# Stop emqx
|
||
./bin/emqx stop
|
||
```
|
||
|
||
To view the dashboard after running, use your browser to open: http://localhost:18083
|
||
|
||
## Test
|
||
|
||
### To test everything in one go
|
||
|
||
```
|
||
make eunit ct
|
||
```
|
||
|
||
### To run subset of the common tests
|
||
|
||
Examples
|
||
|
||
```bash
|
||
make apps/emqx_bridge_mqtt-ct
|
||
```
|
||
|
||
### Dialyzer
|
||
##### To Analyze all the apps
|
||
```
|
||
make dialyzer
|
||
```
|
||
|
||
##### To Analyse specific apps, (list of comma separated apps)
|
||
```
|
||
DIALYZER_ANALYSE_APP=emqx_lwm2m,emqx_auth_jwt,emqx_auth_ldap make dialyzer
|
||
```
|
||
|
||
## Community
|
||
|
||
### FAQ
|
||
|
||
Visiting [EMQ X FAQ](https://docs.emqx.io/en/broker/latest/faq/faq.html) to get help of common problems.
|
||
|
||
|
||
### Questions
|
||
|
||
[GitHub Discussions](https://github.com/emqx/emqx/discussions) is where you can ask questions, and share ideas.
|
||
|
||
### Proposals
|
||
|
||
For more organised improvement proposals, you can send pull requests to [EIP](https://github.com/emqx/eip).
|
||
|
||
### Plugin development
|
||
|
||
To develop your own plugins, see [lib-extra/README.md](./lib-extra/README.md)
|
||
|
||
|
||
## MQTT Specifications
|
||
|
||
You can read the mqtt protocol via the following links:
|
||
|
||
[MQTT Version 3.1.1](https://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html)
|
||
|
||
[MQTT Version 5.0](https://docs.oasis-open.org/mqtt/mqtt/v5.0/cs02/mqtt-v5.0-cs02.html)
|
||
|
||
[MQTT SN](http://mqtt.org/new/wp-content/uploads/2009/06/MQTT-SN_spec_v1.2.pdf)
|
||
|
||
## License
|
||
|
||
Apache License 2.0, see [LICENSE](./LICENSE).
|