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.
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
- 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/# 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 plugin support
- Passed eclipse paho interoperability tests
Download binary packeges for linux, mac and freebsd from http://emqtt.io/downloads.
For example:
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
Read emqtt wiki for detailed installation and configuration guide.
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
The MIT License (MIT)
@hejin1026 @desoulter @turtleDeng @Hades32 @huangdan
Feng Lee feng@emqtt.io