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


  • 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
  • Proxy Protocol V1/2
  • Lua Hook and Web Hook


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


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_web_hook Web Hook Plugin
emq_lua_hook Lua Hook 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



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:



Apache License Version 2.0

Related Repositories



EMQ - Erlang MQTT Broker ...



emqttd web dashboard ...



emqttd web dashboard ...



emqttd redis plugin ...



emqttd redis plugin ...

Top Contributors

emqplus huangdan phanimahesh callbay hejin1026 farhadi TheWaWaR jefforeilly mindflayer dvliman kevsmith ralphtheninja quant67 Hades32 ReadmeCritic VikramTiwari andrewchambers turtleDeng


-   v2.0-beta.3 zip tar
-   v2.0-beta.2 zip tar
-   v2.0-beta.1 zip tar
-   v0.5.1-alpha zip tar
-   v0.4.0-alpha zip tar
-   v0.3.4-beta zip tar
-   v0.3.3-beta zip tar
-   v0.3.2-beta zip tar
-   v0.3.1-beta zip tar
-   v0.3.0-beta zip tar
-   v0.3.0-alpha zip tar
-   v0.2.1-beta zip tar
-   1.1.3 zip tar
-   1.1.2 zip tar
-   1.1.1 zip tar
-   1.1 zip tar
-   1.0.3 zip tar
-   1.0.2 zip tar
-   1.0.1 zip tar
-   1.0 zip tar
-   0.17.1 zip tar
-   0.17.0 zip tar
-   0.16.0 zip tar
-   0.15.0 zip tar
-   0.14.1-beta zip tar
-   0.14.0-beta zip tar
-   0.13.1-beta zip tar
-   0.13.0-beta zip tar
-   0.12.3-beta zip tar
-   0.12.1-beta zip tar