create emqx project

Feng Lee aa6dc3e689 GetStarted %!s(int64=10) %!d(string=hai) anos
apps ac3a17e0e7 env %!s(int64=11) %!d(string=hai) anos
deps 3a6ed9a876 0.2 project structure %!s(int64=11) %!d(string=hai) anos
doc aa6dc3e689 GetStarted %!s(int64=10) %!d(string=hai) anos
plugins 79d93e5d8b rm admin %!s(int64=11) %!d(string=hai) anos
rel 23aec03867 kernel %!s(int64=11) %!d(string=hai) anos
tests 68eb225981 add tests %!s(int64=11) %!d(string=hai) anos
.gitignore e6db7c7854 add spec %!s(int64=11) %!d(string=hai) anos
.gitmodules 68eb225981 add tests %!s(int64=11) %!d(string=hai) anos
.travis.yml db6d9cc49b add %!s(int64=11) %!d(string=hai) anos
CHANGELOG.md e83ed258df application %!s(int64=11) %!d(string=hai) anos
LICENSE f33cf11cd5 emqtt.io %!s(int64=11) %!d(string=hai) anos
Makefile 409b5dbe42 copy plugins... %!s(int64=11) %!d(string=hai) anos
README.md 63b11209fc update 'Features' %!s(int64=11) %!d(string=hai) anos
TODO 11d19c1745 0.7.0 release %!s(int64=11) %!d(string=hai) anos
go 7359f4ffa1 fix go script %!s(int64=11) %!d(string=hai) anos
rebar 2d2aa2f79a upgrade esockd, mochiweb %!s(int64=11) %!d(string=hai) anos
rebar.config 4d89ec1ed5 fix issue #102 - 'make clean' cannot work %!s(int64=11) %!d(string=hai) anos

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 aims to provide a solid, enterprise grade open-source MQTT broker that could support ten millions of concurrent MQTT clients.

Architecture

emqttd architecture

Featues

  • 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

QuickStart

Download binary packeges for linux, mac and freebsd from http://emqtt.io/downloads.

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 GettingStarted for more 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

@desoulter

@turtleDeng

Author

Feng Lee feng@emqtt.io