whatisgithub

What is emqx?

emqx/emqx — explained in plain English

Analysis updated 2026-06-24

16,270ErlangAudience · ops devopsComplexity · 4/5LicenseSetup · hard

In one sentence

An MQTT message broker built to connect millions of IoT devices simultaneously, route their messages in real time, and forward data to databases, queues, and cloud services at massive scale.

Mindmap

mindmap
  root((repo))
    What it does
      MQTT broker
      IoT messaging
      Device routing
    Scale
      100M clients
      Millions per second
      Sub-ms latency
    Integrations
      Kafka and RabbitMQ
      PostgreSQL MySQL
      AWS GCP Azure
    Security
      TLS encryption
      JWT auth
      LDAP support
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Build the messaging backbone for an IoT platform connecting thousands of sensors to a database.

USE CASE 2

Route live device data from industrial equipment through transformation rules into Kafka and a time-series database.

USE CASE 3

Run a vehicle telematics system receiving telemetry from millions of connected vehicles in real time.

USE CASE 4

Integrate smart home device data into a cloud pipeline using built-in connectors for AWS, GCP, or Azure.

What is it built with?

ErlangMQTTSQLTLSPrometheusGrafana

How does it compare?

emqx/emqxapache/couchdbd4l3k/cs418
Stars16,2706,876
LanguageErlangErlangErlang
Last pushed2017-04-27
MaintenanceDormant
Setup difficultyhardmoderateeasy
Complexity4/54/51/5
Audienceops devopsdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires configuring external database connectors and understanding MQTT protocol, cluster setup adds significant complexity.

Free to use up to a point, from version 5.9.0 commercial production use beyond certain scale requires a commercial license under the Business Source License 1.1.

So what is it?

EMQX is an MQTT broker, software that sits in the middle of large networks of connected devices and routes their messages to the right places. It is aimed at the data infrastructure used in the Internet of Things, industrial IoT, connected vehicles, smart cities, and AI applications that work with live device streams. Underneath, EMQX speaks the MQTT protocol in its 5.0, 3.1.1 and 3.1 versions, and also supports related protocols like MQTT-SN, CoAP, LwM2M and MQTT over QUIC through built-in gateways. A single cluster is designed to connect more than 100 million MQTT clients at once and process millions of messages per second with sub-millisecond latency, using a masterless clustering setup so the system stays up if individual nodes fail. Incoming messages can be filtered, transformed and enriched in flight through an SQL-based Rule Engine, or built visually with a drag-and-drop Flow Designer. From there, data can be forwarded to over fifty external systems, including message queues like Kafka and RabbitMQ, databases like PostgreSQL, MySQL, MongoDB, Redis and InfluxDB, and cloud services like AWS Kinesis, GCP Pub/Sub and Azure Event Hubs. You would reach for EMQX when you need to ingest data from many connected devices at scale and route it reliably into the rest of your stack. It includes TLS/SSL encryption, authentication via JWT, X.509 certificates, LDAP and database lookups, monitoring through Prometheus, Grafana and OpenTelemetry, an HTTP API and a web Dashboard. EMQX is written in Erlang and, from version 5.9.0, is released under the Business Source License 1.1 as a single unified offering.

Copy-paste prompts

Prompt 1
Set up a single-node EMQX broker, connect a simulated IoT device, and forward its MQTT messages to a PostgreSQL database using the Rule Engine, show me the full config.
Prompt 2
How do I configure EMQX to authenticate MQTT clients using JWT tokens and encrypt all connections with TLS?
Prompt 3
Write an EMQX SQL rule that filters incoming sensor readings for values above a threshold and forwards only those to a Kafka topic.
Prompt 4
How do I add a second EMQX node to form a cluster and verify it handles client failover if one node goes down?

Frequently asked questions

What is emqx?

An MQTT message broker built to connect millions of IoT devices simultaneously, route their messages in real time, and forward data to databases, queues, and cloud services at massive scale.

What language is emqx written in?

Mainly Erlang. The stack also includes Erlang, MQTT, SQL.

What license does emqx use?

Free to use up to a point, from version 5.9.0 commercial production use beyond certain scale requires a commercial license under the Business Source License 1.1.

How hard is emqx to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is emqx for?

Mainly ops devops.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.