create emqx project

Feng Lee 4af6065984 For paho interoperability tests 7 anni fa
.github 9cca05b3ab TEMPLATE 9 anni fa
docs 0f052ce352 Upgrade connection, protocol and session modules for MQTT 5.0 7 anni fa
etc 4af6065984 For paho interoperability tests 7 anni fa
include b10f49b52c Add CONNACK macros for MQTT V3.1.1 7 anni fa
priv 68cfcf6e0e Pass paho mqtt interoperability tests 7 anni fa
src 5f42f88401 Pass paho zero_length_clientid test case 7 anni fa
test 0f052ce352 Upgrade connection, protocol and session modules for MQTT 5.0 7 anni fa
.gitignore fcb2ec8427 Merge the latest enterprise branch 8 anni fa
.travis.yml 288e03c914 Update OTP version for travis-CI 7 anni fa
LICENSE 94c3e69b44 Licensed under the Apache, Version 2.0 10 anni fa
Makefile 09b5535260 Depends on cowboy 2.4.0 7 anni fa
README.md fcb2ec8427 Merge the latest enterprise branch 8 anni fa
TODO 7ee54aac28 Add 'qos' field to message record 7 anni fa
erlang.mk a8aeb5ac17 Rename the 'mqtt_route' record to 'route' 8 anni fa
rebar.lock e39a96cbc8 update rebar.lock 8 anni fa

README.md

EMQ X - EMQ X 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
  • JWT Authentication
  • 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
  • LWM2M Prototol Support

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_auth_jwt JWT 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_lwm2m LWM2M Prototol Plugin
emq_recon Recon Plugin
emq_reloader Reloader Plugin
emq_sockjs SockJS(Stomp) Plugin

Supports

Test Servers

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

qing_cluster

License

Apache License Version 2.0