Go to file
J Phani Mahesh a71a061305
add app.src,rebar.lock, ignores for rebar3
Having src/emqttd.app.src allows rebar family of build tools
(rebar2, and rebar3) to be used to compile emqttd. This is important
to allow plugins to be written using rebar3, to lock dependencies.

rebar.lock contains references to commits or hashes of dependencies
and is used by rebar3 to allow repeatable builds.

This is important since without it, updates to dependencies are
silently pulled and it is impractical to replicate a build properly.

However, this adds an additional maintenance effort. Periodically,
the lock file must be updated using rebar3 upgrade, and app.src
must be updated when adding new dependencies.

Note that erlang.mk does not respect dependency locking currently,
and does not benefit from rebar.lock.

_build is used by rebar3 and mix for storing built artifacts.
2017-02-27 14:19:04 +05:30
.github TEMPLATE 2016-11-10 17:26:02 +08:00
doc doc 2016-11-20 20:01:56 +08:00
etc Disable the force GC if conn_force_gc_count = 0 2017-02-23 18:53:16 +08:00
include Rename mqtt_msgid() type to mqtt_msg_id() 2017-02-23 22:59:26 +08:00
priv Add 'mqtt.conn.force_gc_count' config to tune GC of MQTT connection 2017-02-23 16:53:47 +08:00
src add app.src,rebar.lock, ignores for rebar3 2017-02-27 14:19:04 +05:30
test Support to hook 'tag' function 2017-02-23 11:55:52 +08:00
.gitignore add app.src,rebar.lock, ignores for rebar3 2017-02-27 14:19:04 +05:30
.travis.yml R18 2016-05-31 21:34:51 +08:00
CONTRIBUTORS.md add CONTRIBUTORS.md 2016-11-28 13:08:51 +08:00
erlang.mk 2.0 - erlang.mk to replace rebar 2016-07-19 17:46:05 +08:00
LICENSE Licensed under the Apache, Version 2.0 2016-02-05 14:26:17 +08:00
Makefile Version 2.1.0 2017-02-22 17:33:25 +08:00
README.md Require R19+ to build since 2.1 release 2017-02-22 15:56:12 +08:00
rebar.config Add 'lager_syslog' dependency 2017-02-21 18:46:44 +08:00
rebar.lock add app.src,rebar.lock, ignores for rebar3 2017-02-27 14:19:04 +05:30

EMQ - Erlang MQTT Broker Build Status

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.

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 has scaled to 1.3 million concurrent MQTT connections on a 12 Core, 32G CentOS server.

Please visit emqtt.io for more service. Follow us on Twitter: @emqtt

Features

  • Full MQTT V3.1/V3.1.1 support
  • QoS0, QoS1, QoS2 Publish/Subscribe
  • Session Management and Offline Messages
  • Retained Message
  • Last Will Message
  • TCP/SSL Connection
  • MQTT Over WebSocket(SSL)
  • HTTP Publish API
  • MQTT-SN Protocol
  • STOMP protocol
  • STOMP over SockJS
  • $SYS/# Topics
  • ClientID Authentication
  • IpAddress Authentication
  • Username and Password Authentication
  • Access control based on IpAddress, ClientID, Username
  • 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 and Plugins
  • Passed eclipse paho interoperability tests
  • Local Subscription
  • Shared Subscription

Installation

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/, docs.emqtt.com for installation and configuration guide.

Build From Source

The EMQ broker requires Erlang/OTP R19+ to build since 2.1 release.

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 Plugin template and demo
emq_dashboard Web Dashboard
emq_retainer Store MQTT Retained Messages
emq_modules Presence, Subscription and Rewrite Modules
emq_auth_username Username/Password Authentication Plugin
emq_auth_clientid ClientId Authentication Plugin
emq_auth_mysql MySQL Authentication/ACL Plugin
emq_auth_pgsql PostgreSQL Authentication/ACL Plugin
emq_auth_redis Redis Authentication/ACL Plugin
emq_auth_mongo MongoDB Authentication/ACL Plugin
emq_auth_http Authentication/ACL by HTTP API
emq_auth_ldap LDAP Authentication Plugin
emq_sn MQTT-SN Protocol Plugin
emq_coap CoAP Protocol Plugin
emq_stomp Stomp Protocol Plugin
emq_recon Recon Plugin
emq_reloader Reloader Plugin
emq_sockjs SockJS(Stomp) Plugin

Supports

Partners

QingCloud 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.

The q.emqtt.com hosts a public Four-Node EMQ cluster on QingCloud:

qing_cluster

License

Apache License Version 2.0