Go to file
Feng Lee 4cfa07d774 Merge pull request #452 from emqtt/0.16
0.16 - Licensed under the Apache 2.0. Improve the design of cluster, route and trie.
2016-02-16 03:45:27 +08:00
deps 0.2 project structure 2014-12-06 19:12:29 +08:00
docs placeholder 2016-01-24 17:48:29 +08:00
ebin ebin 2015-08-09 09:53:56 +08:00
include merge trie records from emqttd_trie.erl to this header file 2016-02-13 14:27:11 +08:00
plugins upgrade all plugins 2016-02-16 03:20:48 +08:00
rel fix issue #445 2016-02-16 02:46:03 +08:00
src router_pool/1 2016-02-16 03:03:16 +08:00
test common tests 2016-02-16 02:20:29 +08:00
.gitignore common tests 2016-02-16 02:20:29 +08:00
.gitmodules add redis plugin 2016-01-21 10:40:56 +08:00
.travis.yml Update travis to use new infrastructure 2015-09-28 17:18:57 +05:30
CHANGELOG.md Merge branch 'master' into 0.16 2016-02-16 02:56:59 +08:00
LICENSE Licensed under the Apache, Version 2.0 2016-02-05 14:26:17 +08:00
Makefile ct as test 2016-02-16 03:13:08 +08:00
PLUGIN.md 0.11.0 2015-09-25 22:34:11 +08:00
README.md Licensed under the Apache, Version 2.0 2016-02-05 14:26:17 +08:00
rebar upgrade esockd, mochiweb 2015-03-02 01:40:22 +08:00
rebar.config common tests 2016-02-16 02:20:29 +08:00

README.md

Overview Build Status Join the chat at https://gitter.im/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.

Demo Server: tcp://t.emqtt.io:1883

Follow us on Twitter: @emqtt

Goals

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

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/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

Modules

Plugins

Dashboard

The broker released a simple web dashboard in 0.10.0 version.

Address: http://localhost:18083 Username: admin Password: public

Design

emqttd architecture

QuickStart

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

GetStarted

Read emqtt wiki for detailed installation and configuration guide.

Benchmark

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

Supports

Contributors

Author

Feng Lee feng@emqtt.io

License

Apache License Version 2.0