117 lines
3.1 KiB
Markdown
117 lines
3.1 KiB
Markdown
|
|
## Overview [](https://travis-ci.org/emqtt/emqttd)
|
|
|
|
emqttd is a massively scalable and clusterable MQTT V3.1/V3.1.1 broker written in Erlang/OTP. emqttd support both MQTT V3.1/V3.1.1 protocol specification with extended features.
|
|
|
|
emqttd requires Erlang R17+ to build.
|
|
|
|
|
|
## Goals
|
|
|
|
emqttd is aimed to provide a solid, enterprise grade, extensible open-source MQTT broker for IoT(M2M) applications that need to support ten millions of concurrent MQTT clients.
|
|
|
|
* Easy to install
|
|
* Massively scalable
|
|
* Easy to extend
|
|
* Solid stable
|
|
|
|
|
|
## Features
|
|
|
|
* Full MQTT V3.1/V3.1.1 protocol specification support
|
|
* QoS0, QoS1, QoS2 Publish and Subscribe
|
|
* Session Management and Offline Messages
|
|
* Retained Messages Support
|
|
* Last Will Message Support
|
|
* TCP/SSL Connection Support
|
|
* MQTT Over Websocket(SSL) Support
|
|
* HTTP Publish API Support
|
|
* [$SYS/borkers/#](https://github.com/emqtt/emqtt/wiki/$SYS-Topics-of-Broker) Support
|
|
* Client Authentication with clientId, ipaddress
|
|
* Client Authentication with username, password.
|
|
* Client ACL control with ipaddress, clientid, username.
|
|
* Cluster brokers on several servers.
|
|
* Bridge brokers locally or remotelly
|
|
* 500K+ concurrent clients connections per server
|
|
* Extensible architecture with Hooks, Modules and Plugins
|
|
* Passed eclipse paho interoperability tests
|
|
|
|
|
|
## Plugins
|
|
|
|
* [emqttd_auth_clientid](https://github.com/emqtt/emqttd/wiki/Authentication) - Authentication with ClientIds
|
|
* emqttd_auth_mysql - Authentication with MySQL
|
|
* emqttd_auth_ldap - Authentication with LDAP
|
|
* emqttd_mod_autosub - Subscribe some topics automatically when client connected
|
|
* [emqttd_mod_presence](https://github.com/emqtt/emqttd/wiki/Presence) - Publish presence message to $SYS topics when client connected or disconnected
|
|
* [emqttd_mod_rewrite](https://github.com/emqtt/emqttd/wiki/Rewrite) - Topics rewrite like HTTP rewrite module
|
|
|
|
|
|
## Design
|
|
|
|

|
|
|
|
|
|
## QuickStart
|
|
|
|
Download binary packeges for linux, mac and freebsd from [http://emqtt.io/downloads](http://emqtt.io/downloads).
|
|
|
|
For example:
|
|
|
|
```sh
|
|
tar xvf emqttd-ubuntu64-0.7.0-alpha.tgz && cd emqttd
|
|
|
|
# start console
|
|
./bin/emqttd console
|
|
|
|
# start as daemon
|
|
./bin/emqttd start
|
|
|
|
# check status
|
|
./bin/emqttd_ctl status
|
|
|
|
# stop
|
|
./bin/emqttd stop
|
|
```
|
|
|
|
Build from source:
|
|
|
|
```
|
|
git clone https://github.com/emqtt/emqttd.git
|
|
|
|
cd emqttd && make && make dist
|
|
```
|
|
|
|
|
|
## GetStarted
|
|
|
|
Read [emqtt wiki](https://github.com/emqtt/emqttd/wiki) for detailed installation and configuration guide.
|
|
|
|
|
|
## Benchmark
|
|
|
|
Benchmark 0.6.1-alpha on a ubuntu/14.04 server with 8 cores, 32G memory from QingCloud:
|
|
|
|
200K+ Connections, 200K+ Topics, 20K+ In/Out Messages/sec, 20Mbps+ In/Out with 8G Memory, 50%CPU/core
|
|
|
|
|
|
## License
|
|
|
|
The MIT License (MIT)
|
|
|
|
|
|
## Contributors
|
|
|
|
* [@hejin1026](https://github.com/hejin1026)
|
|
* [@desoulter](https://github.com/desoulter)
|
|
* [@turtleDeng](https://github.com/turtleDeng)
|
|
* [@Hades32](https://github.com/Hades32)
|
|
* [@huangdan](https://github.com/huangdan)
|
|
* [@callbay](https://github.com/callbay)
|
|
|
|
|
|
## Author
|
|
|
|
Feng Lee <feng@emqtt.io>
|
|
|