# Get Started
EMQ X Edge is an open source, lightweight MQTT broker running at any resource constraint edge devices. It's written in Erlang/OTP, and Erlang/OTP is a concurrent, fault-tolerant, soft-realtime and distributed programming platform. MQTT is an extremely lightweight publish/subscribe messaging protocol powering IoT, M2M and Mobile applications.
Highlights of the EMQ X Edge Broker :
- It supports MQTT, TCP, WebSocket and different industry protocols such ModBus.
- It can be running at different kinds of resource constrained edge devices, such as Raspberry Pi, gateway and industrial servers.
- It provides local data processing and cloud synchronization which will automatically synchronize data with cloud service based on network status.
- Integrated with EMQ X Storm which provides central monitoring and management services.
- Lightweight - 20MB runtime memory with minimal resource consumption, which can run on ARM/x86 CPU, from Raspberry Pi to industrial X86 servers.
- Near real-time response - processing the data generated locally, so it can respond quickly to local events.
- Operate online or offline - it operate locally and can cache data when network is not available; when they’re back online it can synchronize data to the cloud and use the cloud for management, analysis and date persistence.
- Easy management & monitoring - central edge broker management, data synchronization, visualized monitoring tools based on web UI.
- Extensibility - Open APIs available to third party plugins to support more protocols, new functions and features.
# Quick Start
# Download and Install
The EMQ X Edge is cross-platform, which could be deployed on Raspberry Pi, Linux and FreeBSD.
Download binary package from: https://emqx.io/downloads (opens new window) .
Installing on Linux, for example:
unzip emqx-edge-centos7-v3.1.zip && cd emqx # Start EMQ X Edge ./bin/emqx start # Check Status ./bin/emqx_ctl status # Stop EMQ X ./bin/emqx stop
# Installing from Source
The EMQ X Edge broker requires Erlang/OTP R21+ to build since 3.0 release.
git clone https://github.com/emqx/emqx.git cd emqx && make rel cd rel/emqx && ./bin/emqx console
The EMQ X Edge broker could be extended by Plugins. A plugin is an Erlang application that adds extra feature to the EMQ X Edge broker:
|emqx_retainer (opens new window)||Store Retained Messages|
|emqx_auth_clientid (opens new window)||Authentication with ClientId|
|emqx_auth_username (opens new window)||Authentication with Username and Password|
|emqx_auth_http (opens new window)||Authentication/ACL with HTTP API|
|emqx_auth_mysql (opens new window)||Authentication with MySQL|
|emqx_sn (opens new window)||MQTT-SN Protocol Plugin|
|emqx_coap (opens new window)||CoAP Protocol Plugin|
|emqx_stomp (opens new window)||STOMP Protocol Plugin|
|emqx_recon (opens new window)||Recon Plugin|
|emqx_reloader (opens new window)||Reloader Plugin|
|emqx_web_hook (opens new window)||Web Hook Plugin|
A plugin could be enabled by 'bin/emqx_ctl plugins load' command.
For example, enable 'emqx_auth_mysql' plugin:
./bin/emqx_ctl plugins load emqx_auth_mysql
# MQTT Client Libraries
|emqttc (opens new window)||Erlang MQTT Client|
|emqtt_benchmark (opens new window)||MQTT benchmark Tool|
|CocoaMQTT (opens new window)||Swift MQTT Client|
|QMQTT (opens new window)||QT MQTT Client|
Eclipse Paho: https://www.eclipse.org/paho/ (opens new window)