# Install emqx with Homebrew

MQTT broker for IoT. Version 5.8.8 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:emqx
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install emqx
```

  Evidence: local Homebrew formula metadata

## Package facts

- **Package key:** brew:emqx
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/emqx>
- **Version:** 5.8.8
- **Source summary:** MQTT broker for IoT
- **Homepage:** <https://www.emqx.io/>
- **Repository:** <https://github.com/emqx/emqx>
- **Upstream docs:** <https://docs.emqx.com/en/emqx/latest>
- **License:** Apache-2.0
- **Source archive:** <https://github.com/emqx/emqx/archive/refs/tags/v5.8.8.tar.gz>
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- emqx (cli)
- emqx-5.8.8 (cli)
- emqx_cluster_rescue (cli)
- emqx_ctl (cli)
- emqx_ctl-5.8.8 (cli)
- emqx_fw (cli)
- install_upgrade.escript (cli)
- install_upgrade.escript-5.8.8 (cli)
- no_dot_erlang.boot (cli)
- node_dump (cli)
- nodetool-5.8.8 (cli)
- emqx (alias)
- emqx-5.8.8 (alias)
- emqx_cluster_rescue (alias)
- emqx_ctl (alias)
- emqx_ctl-5.8.8 (alias)
- emqx_fw (alias)
- install_upgrade.escript (alias)
- install_upgrade.escript-5.8.8 (alias)
- no_dot_erlang.boot (alias)
- node_dump (alias)
- nodetool-5.8.8 (alias)

## Dependencies

- openssl@3

## Build dependencies

- autoconf
- automake
- cmake
- coreutils
- erlang@26
- freetds
- libtool

## Uses from macOS

- cyrus-sasl
- krb5
- ncurses

## Install behavior

- Post-install hook: not defined
- Service: declared
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 5.8.8
- Local data: ok
- Upstream repository: https://github.com/emqx/emqx
- Upstream latest detected: v5.8.8 (current)
- info: No package-manager update timestamp was available.
## Project history and usage

EMQX is an Erlang-based MQTT broker and IoT messaging platform for high-scale device connectivity, MQTT protocol support, clustering, rules, data integrations, and operational management.

### Project history

EMQ's tenth-anniversary post says EMQX was released as an open-source project on GitHub on December 17, 2012. The same source frames its origin around Erlang, MQTT, and open source, and says development continued through the 2010s as MQTT became a default protocol for IoT messaging.

The official history highlights several product milestones: early MQTT 3.1 and 3.1.1 compatibility, EMQX 3.0 in 2018 with full MQTT 5.0 server support, EMQX 4.0 in 2020 with a built-in SQL-based rule engine, and EMQX 5.0 with larger-scale clustering, MQTT over QUIC, and 100M+ connection testing.

The README describes EMQX as a platform rather than only a broker, with support for MQTT 5.0, 3.1.1, and 3.1, plus MQTT-SN, CoAP, LwM2M, and MQTT over QUIC. It also documents the 5.9.0 licensing/product change that unified features from the previous open-source and enterprise editions under BSL 1.1.

### Adoption history

The anniversary post gives the clearest official adoption snapshot: more than 10K GitHub stars, more than 20M downloads, more than 20,000 enterprise users, and more than 30,000 active cluster deployments per month at the time of that post.

EMQX's commercial adoption story is also official: EMQ says the company opened in 2017 in response to enterprise users deploying EMQX at scale, and the anniversary post cites over 400 customers and over 70 Fortune 500 companies using EMQX in IoT, IIoT, connected-vehicle, and other mission-critical applications.

### How it is used

Package users run EMQX as a broker service, commonly exposing MQTT ports, the Dashboard, and HTTP APIs. The official README shows Docker startup, Kubernetes operator documentation, downloads for self-managed installs, and build-from-source instructions.

Configuration became more HOCON-oriented in EMQX 5. The official configuration docs describe `etc` as the static configuration directory, `data/configs` as the dynamic runtime configuration directory, `base.hocon` for configuration-as-code, `cluster.hocon` for changes persisted through Dashboard/API/CLI, and `emqx.conf` for backward-compatible immutable settings.

In deployed systems, EMQX is commonly used as the MQTT ingress and routing layer for IoT data, with rules and bridges sending messages to Kafka, RabbitMQ, PostgreSQL, MySQL, MongoDB, Redis, ClickHouse, cloud messaging services, webhooks, and observability systems.

### Why package nerds care

EMQX is a heavier package-manager entry than most CLIs in this batch: it ships a broker, management commands, Erlang runtime expectations, configuration layers, a dashboard, and service-style deployment behavior. For package maintainers, it sits closer to Redis, RabbitMQ, or Mosquitto than to a single-purpose command.

It matters to package nerds because it exposes the messy but useful intersection of package managers and distributed systems: local development installs, service supervision, data directories, versioned config migration, and network ports all have to line up before the binary is useful.

### Timeline

- 2012: EMQX released as an open-source project on GitHub on December 17.
- 2017: EMQ opened as a company after enterprise deployment demand grew.
- 2018: EMQX 3.0 released with complete MQTT 5.0 server support.
- 2020: EMQX 4.0 introduced a built-in SQL-based rule engine.
- 2022: EMQX 5.0 arrived with 100M+ connection testing and MQTT over QUIC highlighted by EMQ.
- v5.9.0: EMQX unified prior open-source and enterprise features under BSL 1.1.

### Related projects

- Related EMQ projects and surfaces include EMQX Cloud, the EMQX Kubernetes Operator, MQTTX, the EMQX rule engine and data integrations, and the broader MQTT broker ecosystem that includes Mosquitto, VerneMQ, HiveMQ, and RabbitMQ MQTT plugins.

### Sources

- <https://www.emqx.com/en/blog/reflections-on-the-tenth-anniversary-of-emqx>
- <https://github.com/emqx/emqx>
- <https://docs.emqx.com/en/emqx/latest/configuration/configuration.html>
- <https://docs.emqx.com/en/emqx/latest/configuration/configuration.md>


## Security Notes

formula declares a Homebrew service. infrastructure mutation or orchestration signal.

- **Geiger risk:** orange / medium
- formula declares a Homebrew service
- infrastructure mutation or orchestration signal


## Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.


## Configuration files

- Unix: etc/emqx.conf, etc/base.hocon, etc/cluster.hocon
## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** emqx
- **Version Scheme:** 0
- **Revision:** 0
- **Conflicts With:** cassandra
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** yes
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable


## Related links

- [Secret-risk packages](https://www.automicvault.com/pkg/secret-risk-packages/) - Has protected-tool coverage, approval-gate, or non-low Geiger security signals.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [Homebrew utility packages](https://www.automicvault.com/pkg/brew-utility-packages/) - Matched Homebrew package provider.
- [openssl@3](https://www.automicvault.com/pkg/brew/openssl-3/) - Runtime dependency declared by Homebrew.
- [autoconf](https://www.automicvault.com/pkg/brew/autoconf/) - Build dependency declared by Homebrew.
- [automake](https://www.automicvault.com/pkg/brew/automake/) - Build dependency declared by Homebrew.
- [cmake](https://www.automicvault.com/pkg/brew/cmake/) - Build dependency declared by Homebrew.
- [coreutils](https://www.automicvault.com/pkg/brew/coreutils/) - Build dependency declared by Homebrew.
- [ejabberd](https://www.automicvault.com/pkg/brew/ejabberd/) - Shares av.db curated category or tags: cli, erlang, messaging, networking.
- [libpaho-mqtt](https://www.automicvault.com/pkg/brew/libpaho-mqtt/) - Shares av.db curated category or tags: cli, messaging, mqtt, networking.
- [mosquitto](https://www.automicvault.com/pkg/brew/mosquitto/) - Shares av.db curated category or tags: cli, iot, messaging, mqtt, networking.
- [nats-server](https://www.automicvault.com/pkg/brew/nats-server/) - Shares av.db curated category or tags: cli, messaging, networking, pubsub.
- [activemq](https://www.automicvault.com/pkg/brew/activemq/) - Shares av.db curated category or tags: cli, messaging, networking.
- [czmq](https://www.automicvault.com/pkg/brew/czmq/) - Shares av.db curated category or tags: cli, messaging, networking.
- [nanomsg](https://www.automicvault.com/pkg/brew/nanomsg/) - Shares av.db curated category or tags: cli, messaging, networking.
- [nats-streaming-server](https://www.automicvault.com/pkg/brew/nats-streaming-server/) - Shares av.db curated category or tags: cli, messaging, networking.

## Combined YAML source

View the package source record on GitHub. [combined/emqx.yml](https://github.com/automic-vault/db/blob/main/combined/emqx.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated configuration and credential file locations
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- cross-ecosystem install command graph
