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.
Demo Server: tcp://t.emqtt.io:1883
Follow us on Twitter: @emqtt
emqttd is aimed to provide a solid, enterprise grade, extensible open-source MQTT broker for IoT, M2M and Mobile 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/brokers/# 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 remotely
- 500K+ concurrent clients connections per server
- Extensible architecture with Hooks, Modules and Plugins
- Passed eclipse paho interoperability tests
- emqttd_auth_clientid - Authentication with ClientIds
- emqttd_auth_username - Authentication with Username and Password
- emqttd_auth_ldap - Authentication with LDAP
- emqttd_mod_presence - Publish presence message to $SYS topics when client connected or disconnected
- emqttd_mod_autosub - Subscribe topics when client connected
- emqttd_mod_rewrite - Topics rewrite like HTTP rewrite module
- emqttd_plugin_template - Plugin template and demo
- emqttd_dashboard - Web Dashboard
- emqttd_plugin_mysql - Authentication with MySQL
- emqttd_plugin_pgsql - Authentication with PostgreSQL
- emqttd_plugin_kafka - Publish MQTT Messages to Kafka
- emqttd_plugin_redis - Redis Plugin
- emqttd_plugin_mongo - MongoDB Plugin
- emqttd_stomp - Stomp Protocol Plugin
- emqttd_sockjs - SockJS(Stomp) Plugin
- emqttd_recon - Recon Plugin
The broker released a simple web dashboard in 0.10.0 version.
Address: http://localhost:18083 Username: admin Password: public
Download binary packeges for linux, mac and freebsd from http://emqtt.io/downloads.
For example:
unzip emqttd-ubuntu64-0.12.0-beta-20151008.zip && 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.12.0-beta on a centos6 server with 8 Core, 32G memory from QingCloud:
250K Connections, 250K Topics, 250K Subscriptions, 4K Qos1 Messages/Sec In, 20K Qos1 Messages/Sec Out, 8M+(bps) In, 40M+(bps) Out Traffic
Consumed about 3.6G memory and 400+% CPU.
Benchmark Report: benchmark for 0.12.0 release
- Twitter: @emqtt
- Homepage: http://emqtt.io
- Downloads: http://emqtt.io/downloads
- Wiki: https://github.com/emqtt/emqttd/wiki
- Forum: https://groups.google.com/d/forum/emqtt
- Mailing List: emqtt@googlegroups.com
- Issues: https://github.com/emqtt/emqttd/issues
- QQ Group: 12222225
Feng Lee feng@emqtt.io
Apache License Version 2.0