Go to file
Feng d991e30135 rel 2015-06-17 14:20:27 +08:00
apps willmsg 2015-06-17 13:30:34 +08:00
deps 0.2 project structure 2014-12-06 19:12:29 +08:00
doc rm .swp 2015-06-09 12:01:14 +08:00
plugins rename 'users_table' plugin config to 'user_table': 2015-06-02 15:29:53 +08:00
rel vsn 'git' 2015-06-09 11:57:44 +08:00
tests up 2015-05-29 16:36:39 +08:00
.gitignore ignore examples 2015-05-29 15:53:47 +08:00
.gitmodules submodule 2015-05-28 01:02:02 +08:00
.travis.yml add 2015-02-12 21:59:43 +08:00
CHANGELOG.md 0.8.6 2015-06-17 13:34:09 +08:00
CONTRIBUTORS 0.8.4 2015-06-08 23:34:09 +08:00
LICENSE emqtt.io 2015-04-30 16:29:09 +08:00
Makefile dialyzer 2015-05-04 23:25:17 +08:00
README.md contributors 2015-06-08 23:31:20 +08:00
TODO comment rewrite... 2015-05-25 11:35:01 +08:00
go rel 2015-06-17 14:20:27 +08:00
rebar upgrade esockd, mochiweb 2015-03-02 01:40:22 +08:00
rebar.config conver_enabled 2015-05-04 21:49:58 +08:00

README.md

Overview Build Status

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/# 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 - 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 - Publish presence message to $SYS topics when client connected or disconnected
  • emqttd_mod_rewrite - Topics rewrite like HTTP rewrite module

Design

emqttd architecture

QuickStart

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

GetStarted

Read emqtt 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

Author

Feng Lee feng@emqtt.io