Release Date: 2016-11-24

The EMQ Version 2.0, named "West of West Lake", has been released with a lot of improvements and enhancements, and is ready to deploy in production now.

  1. First of all, the EMQ broker now supports Shared Subscription and Local Subscription.

  2. Supports CoAP(RFC 7252) and MQTT-SN protocol/gateway.

  3. Adopt a more user-friendly k = v syntax for the new configuration file.

  4. Add more hooks and new plugins, integrate with HTTP, LDAP, Redis, MySQL, PostgreSQL and MongoDB.

  5. Cross-platform Builds and Deployment. Run the broker on Linux, Unix, Windows, Raspberry Pi and ARM platform.

Shared Subscription

Shared Subscription supports Load balancing to distribute MQTT messages between multiple subscribers in the same group:


                                ---------
                                |       | --Msg1--> Subscriber1
    Publisher--Msg1,Msg2,Msg3-->|  EMQ  | --Msg2--> Subscriber2
                                |       | --Msg3--> Subscriber3
                                ---------

Create a shared subscription with $queue/ or $share/<group>/ prefix.

Local Subscription

The Local Subscription will not create global routes on clustered nodes, and only dispatch MQTT messages on local node.

Usage: subscribe a topic with $local/ prefix.

erlang.mk and relx

The EMQ 2.0 adopts erlang.mk and relx tools to build the whole projects on Linux, Unix and Windows.

CoAP Support

The EMQ 2.0 supports CoAP(RFC7252) protocol/gateway now, and supports communication between CoAP, MQTT-SN and MQTT clients.

CoAP Protocol Plugin: https://github.com/emqtt/emqttd_coap

MQTT-SN Support

The EMQ 2.0 now supports MQTT-SN protocol/gateway.

MQTT-SN Plugin: https://github.com/emqtt/emq_sn

New Configuration File

The release integrated with cuttlefish library, and adopted a more user-friendly k = v syntax for the new configuration file:

    ## Node name
    node.name = emqttd@127.0.0.1
    ...
    ## Max ClientId Length Allowed.
    mqtt.max_clientid_len = 1024
    ...

OS Environment Variables

    EMQ_NODE_NAME=emqttd@127.0.0.1
    EMQ_NODE_COOKIE=emq_dist_cookie
    EMQ_MAX_PORTS=65536
    EMQ_TCP_PORT=1883
    EMQ_SSL_PORT=8883
    EMQ_HTTP_PORT=8083
    EMQ_HTTPS_PORT=8084

Docker Image

We released an official Docker Image for EMQ 2.0. The open source project for Dockerfile: https://github.com/emqtt/emq_docker.

Full Support for Windows

The EMQ 2.0 fully supports Windows platform. You can run 'emqttd_ctl' command and cluster two nodes on Windows now.

Bugfix and Enhancements

#764: add mqtt.cache_acl option

#667: Configuring emqttd from environment variables

#722: mqtt/superuser calls two times emqtt_auth_http

#754: "-heart" option for EMQ 2.0

#741: emq_auth_redis cannot use hostname as server address

Version 2.3-beta.2 Version 2.3-beta.1 Version 2.2.0 Version 2.2-rc.2 Version 2.2-rc.1 Version 2.2-beta.3 Version 2.2-beta.2 Version 2.2-beta.1 Version 2.1.2 Version 2.1.1 Version 2.1.0 Version 2.1.0-rc.2 Version 2.1.0-beta.1 Version 2.1-beta Version 2.0.7 Version 2.0.6 Version 2.0.5 Version 2.0.4 Version 2.0.3 Version 2.0.2 Version 2.0.1 Version 2.0 Version 2.0-rc.3 Version 2.0-rc.2 Version 2.0-beta.3 Version 2.0-beta.2 Version 2.0-beta.1 Version 1.1.3 Version 1.1.2 Version 1.1.1 Version 1.1 Version 1.0.2 Version 1.0.1 Version 1.0 Version 0.17.1-beta Version 0.17.0-beta Version 0.16.0-beta Version 0.15.0-beta Version 0.14.1-beta Version 0.14.0-beta Version 0.13.1-beta Version 0.13.0-beta Version 0.12.3-beta Version 0.12.2-beta Version 0.12.1-beta Version 0.12.0-beta Version 0.11.0-beta Version 0.10.4-beta Version 0.10.3-beta Version 0.10.2-beta Version 0.10.1-beta Version 0.10.0-beta Version 0.9.3-alpha Version 0.9.2-alpha Version 0.9.0-alpha Version 0.9.1-alpha Version 0.8.6-beta Version 0.8.5-beta Version 0.8.4-beta Version 0.8.3-beta Version 0.8.2-alpha Version 0.8.1-alpha Version 0.8.0-alpha Version 0.7.1-alpha Version 0.7.0-alpha Version 0.6.2-alpha Version 0.6.1-alpha Version 0.6.0-alpha Version 0.5.5-beta Version 0.5.4-alpha Version 0.5.3-alpha Version 0.5.2-alpha Version 0.5.1-alpha Version 0.5.0-alpha Version 0.4.0-alpha Version 0.3.4-beta Version 0.3.3-beta Version 0.3.2-beta Version 0.3.1-beta Version 0.3.0-beta Version 0.2.1-beta Version 0.2.0 Version 0.1.5 Version 0.1.3 Version 0.1.4 Version 0.1.2 Version 0.1.1 Version 0.1.0