Giter Site home page Giter Site logo

emqttd's Introduction

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
  • 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

emqttd's People

Contributors

huangdan avatar hjianbo avatar phanimahesh avatar callbay avatar hejin1026 avatar thewawar avatar chimit avatar jaceho avatar farhadi avatar grutabow avatar mingchuno avatar getong avatar buxizhizhoum avatar berkozdilek avatar andrewchambers avatar vikramtiwari avatar readmecritic avatar ravirdv avatar obi458 avatar hades32 avatar zltl avatar ralphtheninja avatar mindflayer avatar dvliman avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.