From f7e7c2e8513c8a2a410fa9be3592ad323967950e Mon Sep 17 00:00:00 2001 From: Feng Lee Date: Mon, 28 Nov 2016 09:56:03 +0800 Subject: [PATCH 1/6] update README --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a3c80b552..7cf2d7a7c 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -## Overview [![Build Status](https://travis-ci.org/emqtt/emqttd.svg?branch=master)](https://travis-ci.org/emqtt/emqttd) +# *EMQ* - Erlang MQTT Broker [![Build Status](https://travis-ci.org/emqtt/emqttd.svg?branch=master)](https://travis-ci.org/emqtt/emqttd) -emqttd is a massively scalable and clusterable MQTT V3.1/V3.1.1 broker written in Erlang/OTP. +*EMQ* is a distributed, massively scalable, highly extensible MQTT message broker written in Erlang/OTP. emqttd is fully open source and licensed under the Apache Version 2.0. emqttd implements both MQTT V3.1 and V3.1.1 protocol specifications, and supports WebSocket, STOMP, SockJS, CoAP and MQTT-SN at the same time. From 56758077d80302590b61fa1dbf219d380299f42f Mon Sep 17 00:00:00 2001 From: Feng Lee Date: Mon, 28 Nov 2016 13:08:51 +0800 Subject: [PATCH 2/6] add CONTRIBUTORS.md --- CONTRIBUTORS.md | 26 +++++++++ README.md | 138 ++++++++++++++---------------------------------- 2 files changed, 65 insertions(+), 99 deletions(-) create mode 100644 CONTRIBUTORS.md diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md new file mode 100644 index 000000000..0e2b17bb8 --- /dev/null +++ b/CONTRIBUTORS.md @@ -0,0 +1,26 @@ + +* [@callbay](https://github.com/callbay) + +* [@lsxredrain](https://github.com/lsxredrain) + +* [@hejin1026](https://github.com/hejin1026) + +* [@desoulter](https://github.com/desoulter) + +* [@turtleDeng](https://github.com/turtleDeng) + +* [@Hades32](https://github.com/Hades32) + +* [@huangdan](https://github.com/huangdan) + +* [@phanimahesh](https://github.com/phanimahesh) + +* [@dvliman](https://github.com/dvliman) + +* [@vowstar](https://github.com/vowstar) + +* [@TheWaWaR](https://github.com/TheWaWaR) + +* [@hejin1026](https://github.com/hejin1026) + +* [@farhadi](https://github.com/farhadi) diff --git a/README.md b/README.md index 7cf2d7a7c..9f952ed2e 100644 --- a/README.md +++ b/README.md @@ -3,31 +3,18 @@ *EMQ* is a distributed, massively scalable, highly extensible MQTT message broker written in Erlang/OTP. -emqttd is fully open source and licensed under the Apache Version 2.0. emqttd implements both MQTT V3.1 and V3.1.1 protocol specifications, and supports WebSocket, STOMP, SockJS, CoAP and MQTT-SN at the same time. +*EMQ* is fully open source and licensed under the Apache Version 2.0. *EMQ* implements both MQTT V3.1 and V3.1.1 protocol specifications, and supports MQTT-SN, CoAP, WebSocket, STOMP and SockJS at the same time. -emqttd requires Erlang R18+ to build since 1.1 release. +The *EMQ* project provides a scalable, reliable, enterprise-grade MQTT message Hub for IoT, M2M, Smart Hardware and Mobile Messaging Applications. -Follow us on Twitter: [@emqtt](https://twitter.com/emqtt) +The 1.0 release of the *EMQ* broker is scaling to 1.3 million concurrent MQTT connections on a 12 Core, 32G CentOS server. -## Cluster - -The **q.emqtt.com** hosts a public emqttd cluster on [QingCloud](https://qingcloud.com): - -![qing_cluster](http://emqtt.io/static/img/public_cluster.png) - -## Goals - -The emqttd project is aimed to implement a scalable, distributed, extensible open-source MQTT broker for IoT, M2M and Mobile applications that hope to handle millions of concurrent MQTT clients. - -* Easy to install -* Massively scalable -* Easy to extend -* Solid stable +The Company behind the open source *EMQ* broker: [emqtt.io](http://emqtt.io). Follow us on Twitter: [@emqtt](https://twitter.com/emqtt) ## Features -* Full MQTT V3.1/V3.1.1 protocol specification support -* QoS0, QoS1, QoS2 Publish and Subscribe +* Full MQTT V3.1/V3.1.1 support +* QoS0, QoS1, QoS2 Publish/Subscribe * Session Management and Offline Messages * Retained Message * Last Will Message @@ -42,17 +29,44 @@ The emqttd project is aimed to implement a scalable, distributed, extensible ope * IpAddress Authentication * Username and Password Authentication * Access control based on IpAddress, ClientID, Username -* Authentication with LDAP, Redis, MySQL, PostgreSQL and HTTP API -* Cluster brokers on several servers +* LDAP Authentication/ACL +* HTTP Authentication/ACL +* MySQL Authentication/ACL +* Redis Authentication/ACL +* PostgreSQL Authentication/ACL +* MongoDB Authentication/ACL +* Cluster brokers on several nodes * Bridge brokers locally or remotely * mosquitto, RSMB bridge -* Extensible architecture with Hooks, Modules and Plugins +* Extensible architecture with Hooks and Plugins * Passed eclipse paho interoperability tests * Local Subscription * Shared Subscription +## Installation + +The *EMQ* broker is cross-platform, which could be deployed on Linux, FreeBSD, Mac, Windows and even Raspberry Pi. + +Download the binary package for your platform from http://emqtt.io/downloads. + +Documentation on [emqtt.io/docs/v2/](http://emqtt.io/docs/v2/), [docs.emqtt.com](http://docs.emqtt.com/en/latest/) for installation and configuration guide. + +## Build From Source + +The *EMQ* broker requires Erlang/OTP R18+ to build. + +``` +git clone https://github.com/emqtt/emq-relx.git + +cd emq-relx && make + +cd _rel/emqttd && ./bin/emqttd console +``` + ## Plugins +The *EMQ* broker is highly extensible, with many hooks and plugins for customizing the authentication/ACL and integrating with other systems: + Plugin | Description -----------------------------------------------------------------------|-------------------------------------- [emq_plugin_template](https://github.com/emqtt/emq_plugin_template) | Plugin template and demo @@ -76,98 +90,24 @@ Plugin | Descrip [emq_reloader](https://github.com/emqtt/emq_reloader) | Reloader Plugin [emq_sockjs](https://github.com/emqtt/emq_sockjs) | SockJS(Stomp) Plugin -## Dashboard - -A Web Dashboard will be loaded when the emqttd broker started successfully. - -The Dashboard helps monitor broker's running status, statistics and metrics of MQTT packets. - -Default Address: http://localhost:18083 - -Default Login/Password: admin/public - -## Design - -![emqttd architecture](http://emqtt.io/static/img/architecture.png) - -## QuickStart - -Download binary package for Linux, Mac and Freebsd from [http://emqtt.io/downloads](http://emqtt.io/downloads). - -Installing on Ubuntu64, for example: - -```sh -unzip emqttd-ubuntu64-2.0-rc.2-20161019.zip && cd emqttd - -# start console -./bin/emqttd console - -# start as daemon -./bin/emqttd start - -# check status -./bin/emqttd_ctl status - -# stop -./bin/emqttd stop -``` - -Installing from source: - -``` -git clone https://github.com/emqtt/emq-relx.git - -cd emq-relx && make - -cd _rel/emqttd && ./bin/emqttd console -``` - -## Documents - -Read Documents on [emqttd-docs.rtfd.org](http://emqttd-docs.rtfd.org) for installation and configuration guide. - -## Benchmark - -Latest release of emqttd broker is scaling to 1.3 million MQTT connections on a 12 Core, 32G CentOS server. - -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](https://github.com/emqtt/emqttd/wiki/benchmark-for-0.12.0-release) - ## Supports * Twitter: [@emqtt](https://twitter.com/emqtt) * Homepage: http://emqtt.io * Downloads: http://emqtt.io/downloads -* Wiki: https://github.com/emqtt/emqttd/wiki +* Documentation: http://emqtt.io/docs/v2/ * Forum: https://groups.google.com/d/forum/emqtt * Mailing List: * Issues: https://github.com/emqtt/emqttd/issues * QQ Group: 12222225 -## Contributors - -* [@callbay](https://github.com/callbay) -* [@lsxredrain](https://github.com/lsxredrain) -* [@hejin1026](https://github.com/hejin1026) -* [@desoulter](https://github.com/desoulter) -* [@turtleDeng](https://github.com/turtleDeng) -* [@Hades32](https://github.com/Hades32) -* [@huangdan](https://github.com/huangdan) -* [@phanimahesh](https://github.com/phanimahesh) -* [@dvliman](https://github.com/dvliman) - ## Partners [QingCloud](https://qingcloud.com) is the world’s first IaaS provider that can deliver any number of IT resources in seconds and adopts a second-based billing system. QingCloud is committed to providing a reliable, secure, on-demand and real-time IT resource platform with excellent performance, which includes all components of a complete IT infrastructure system: computing, storage, networking and security. -## Author +The **q.emqtt.com** hosts a public Four-Node *EMQ* cluster on [QingCloud](https://qingcloud.com): -Feng Lee +![qing_cluster](http://emqtt.io/static/img/public_cluster.png) ## License From 795185c8a4dd93aac5d7db2a05040c0f381227d7 Mon Sep 17 00:00:00 2001 From: Feng Lee Date: Mon, 28 Nov 2016 13:21:03 +0800 Subject: [PATCH 3/6] fix documentation for install --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9f952ed2e..59a0ca2d5 100644 --- a/README.md +++ b/README.md @@ -45,11 +45,11 @@ The Company behind the open source *EMQ* broker: [emqtt.io](http://emqtt.io). Fo ## Installation -The *EMQ* broker is cross-platform, which could be deployed on Linux, FreeBSD, Mac, Windows and even Raspberry Pi. +The *EMQ* broker is cross-platform, which can be deployed on Linux, Unix, Mac, Windows and even Raspberry Pi. Download the binary package for your platform from http://emqtt.io/downloads. -Documentation on [emqtt.io/docs/v2/](http://emqtt.io/docs/v2/), [docs.emqtt.com](http://docs.emqtt.com/en/latest/) for installation and configuration guide. +Documentation on [emqtt.io/docs/v2/](http://emqtt.io/docs/v2/install.html), [docs.emqtt.com](http://docs.emqtt.com/en/latest/install.html) for installation and configuration guide. ## Build From Source From 62af23ec2e21591099eb6e8dfe0fb6c0b42c935b Mon Sep 17 00:00:00 2001 From: Feng Lee Date: Mon, 28 Nov 2016 13:26:54 +0800 Subject: [PATCH 4/6] (Erlang MQTT Broker) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 59a0ca2d5..08007bf91 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # *EMQ* - Erlang MQTT Broker [![Build Status](https://travis-ci.org/emqtt/emqttd.svg?branch=master)](https://travis-ci.org/emqtt/emqttd) -*EMQ* is a distributed, massively scalable, highly extensible MQTT message broker written in Erlang/OTP. +*EMQ(Erlang MQTT Broker)* is a distributed, massively scalable, highly extensible MQTT message broker written in Erlang/OTP. *EMQ* is fully open source and licensed under the Apache Version 2.0. *EMQ* implements both MQTT V3.1 and V3.1.1 protocol specifications, and supports MQTT-SN, CoAP, WebSocket, STOMP and SockJS at the same time. From 6e0d50597a0f5960f61d9a6ebf8ab1bddd414d38 Mon Sep 17 00:00:00 2001 From: Feng Lee Date: Mon, 28 Nov 2016 13:39:38 +0800 Subject: [PATCH 5/6] space --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 08007bf91..dbfa3485e 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # *EMQ* - Erlang MQTT Broker [![Build Status](https://travis-ci.org/emqtt/emqttd.svg?branch=master)](https://travis-ci.org/emqtt/emqttd) -*EMQ(Erlang MQTT Broker)* is a distributed, massively scalable, highly extensible MQTT message broker written in Erlang/OTP. +*EMQ (Erlang MQTT Broker)* is a distributed, massively scalable, highly extensible MQTT message broker written in Erlang/OTP. *EMQ* is fully open source and licensed under the Apache Version 2.0. *EMQ* implements both MQTT V3.1 and V3.1.1 protocol specifications, and supports MQTT-SN, CoAP, WebSocket, STOMP and SockJS at the same time. From 78e4c342ff08615c05a58fbfe333a1cb087e1f96 Mon Sep 17 00:00:00 2001 From: Feng Lee Date: Mon, 28 Nov 2016 15:34:47 +0800 Subject: [PATCH 6/6] review --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index dbfa3485e..658a83201 100644 --- a/README.md +++ b/README.md @@ -5,11 +5,11 @@ *EMQ* is fully open source and licensed under the Apache Version 2.0. *EMQ* implements both MQTT V3.1 and V3.1.1 protocol specifications, and supports MQTT-SN, CoAP, WebSocket, STOMP and SockJS at the same time. -The *EMQ* project provides a scalable, reliable, enterprise-grade MQTT message Hub for IoT, M2M, Smart Hardware and Mobile Messaging Applications. +*EMQ* provides a scalable, reliable, enterprise-grade MQTT message Hub for IoT, M2M, Smart Hardware and Mobile Messaging Applications. -The 1.0 release of the *EMQ* broker is scaling to 1.3 million concurrent MQTT connections on a 12 Core, 32G CentOS server. +The 1.0 release of the EMQ broker has scaled to 1.3 million concurrent MQTT connections on a 12 Core, 32G CentOS server. -The Company behind the open source *EMQ* broker: [emqtt.io](http://emqtt.io). Follow us on Twitter: [@emqtt](https://twitter.com/emqtt) +Please visit [emqtt.io](http://emqtt.io) for more service. Follow us on Twitter: [@emqtt](https://twitter.com/emqtt) ## Features