Voltar ao ranking

nanomq/nanomq

Cnanomq.io

An ultra-lightweight and blazing-fast Messaging Bus/MQTT Broker for Edge & SDV

mqttmqtt-brokeriot-edgenngaioactor-modelasynchronoussmpparrallel-computingiotmessagingmqtt-server
Crescimento de estrelas
Estrelas
2.6k
Forks
302
Crescimento semanal
Issues
54
1k2k
nov. de 2023set. de 2024ago. de 2025jul. de 2026
README

LF Edge NanoMQ

GitHub Release Build Status Docker Pulls Discord Twitter YouTube Community codecov License

NanoMQ MQTT Broker (NanoMQ) is an all-around Edge Messaging Platform that includes a blazing-fast MQTT Broker for the IoT/IIoT and a lightweight Messaging Bus for SDV.

NanoMQ's embedded Actor architecture extends NNG's internal asynchronous I/O, plus an enhanced message passing and scheduling system to maximize the overall capacity. Fine-tuned towards the embedded environment and mission-critical scenarios.

NanoMQ fully supports MQTT V3.1.1/3.1 and MQTT V5.0.

For more information, please visit NanoMQ homepage.

Features

  • Cost-effective on an embedded platform;
  • Fully based on native POSIX. High Compatibility;
  • Pure C implementation. High portability;
  • Fully asynchronous I/O and multi-threading;
  • Good support for SMP;
  • Low latency & High handling capacity;

image

Get Started

Run NanoMQ using Docker

docker run -d --name nanomq -p 1883:1883 -p 8083:8083 -p 8883:8883 emqx/nanomq:latest

More installation options

If you prefer to install and manage NanoMQ yourself, you can download the latest version from nanomq.io/downloads.

Run NanoMQ:

nanomq start
## or run nanomq with a specified configuration file
nanomq start --conf <config_file>

Build From Source

NanoMQ is dedicated to delivering a simple but powerful Messaging Hub on various edge platforms.

With this being said, NanoMQ can run on different architectures such like x86_64 and ARM with minor migration efforts.

Building NanoMQ requires a C99-compatible compiler and CMake (version 3.13 or newer).

  • It is recommended to compile with Ninja:

    git clone https://github.com/emqx/nanomq.git
    cd nanomq
    git submodule update --init --recursive
    mkdir build && cd build
    cmake -G Ninja ..
    ninja
    
  • Or compile with make:

    git clone https://github.com/emqx/nanomq.git 
    cd nanomq
    git submodule update --init --recursive
    mkdir build && cd build
    cmake .. 
    make
    

Build option

There are some configuration options specified using CMake defines in addition to the standard options like CMAKE_BUILD_TYPE:

  • -DNNG_ENABLE_QUIC=ON: to build NanoMQ with QUIC bridging feature
  • -DNNG_ENABLE_TLS=ON: to build with TLS support. (Need to install mbedTLS in advance)
  • -DBUILD_CLIENT=OFF: to disable nanomq tools client suite (including pub / sub / conn )
  • -DBUILD_ZMQ_GATEWAY=ON: to build nanomq_cli with zeromq gateway tool
  • -DBUILD_NFTP=ON: to build nanomq_cli with nftp client
  • -DBUILD_DDS_PROXY=ON: to build nanomq_cli with dds client ( proxy / sub / pub )
  • -DBUILD_BENCH=ON: to build nanomq_cli mqtt bench
  • -DENABLE_JWT=ON: to build JWT dependency for http server
  • -DNNG_ENABLE_SQLITE=ON: to build nanomq with sqlite support
  • -DBUILD_STATIC_LIB=ON: to build nanomq as a static library
  • -DBUILD_SHARED_LIBS=ON: to build nanomq as a shared library
  • -DDEBUG=ON: to enable debug flag
  • -DASAN=ON: to enable sanitizer
  • -DDEBUG_TRACE=ON: to enable ptrace (ptrace is a mechanism that allows one process to “trace” the execution of another process. The tracer is able to pause execution, and inspect and modify memory and registers in the tracee process)

Resources

Get Involved

Our Website

Visit our official website to have a good grasp on NanoMQ MQTT broker and see how it can be applied in current industries.

Test Report

This test report shows how extraordinary and competitive the NanoMQ is in Edge Computing.

Currently the benchmark is for 0.2.5, the updated one with ver 0.3.5 is coming soon

Questions

The Github Discussions provides a place for you to ask questions and share your ideas with users around the world.

Slack

You could join us on Slack. We now share a workspace with the entire EMQ X team. After joining, find your channel!

  • #nanomq: is a channel for general usage, where for asking questions or sharing using experience;
  • #nanomq-dev: is a channel for MQTT lovers and developers, your great thoughts are what we love to hear;
  • #nanomq-nng: is a channel for guys who are interested in NNG, one of our fabulous dependencies.

Community

Some quotes from NNG's maintainer --- Garrett: I’m very excited about the synergy between the NanoMQ and NNG projects, and grateful for sponsorship that NNG has received from the NanoMQ team. The NanoMQ team has been able to push NNG's envelope, and the collaboration has already yielded substantial improvements for both projects. Further, the cooperation between these two project will make MQTT and SP (nanomsg) protocols easy to use within a single project as well as other capabilities (such as websockets, HTTPS clients and servers), greatly expanding the toolset within easy reach of the IoT developer. Further this comes without the usual licensing or portability/embeddability challenges that face other projects. Additional planned collaborative work will further expand on these capabilities to the benefit of our shared communities.

Open Source

NanoMQ is fully open-sourced!

License

MIT License

Authors

The EMQ Edge Computing team.

Repositórios relacionados
home-assistant/core

:house_with_garden: Open source home automation that puts local control and privacy first.

PythonPyPIApache License 2.0pythonhome-automation
home-assistant.io
89.4k38.1k
curl/curl

A command line tool and library for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, MQTTS, POP3, POP3S, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET, TFTP, WS and WSS. libcurl offers a myriad of powerful features

COtherhttphttps
curl.se
42.4k7.3k
blakeblackshear/frigate

NVR with realtime local object detection for IP cameras

TypeScriptnpmMIT Licensertsprealtime
frigate.video
34.5k3.4k
pppscn/SmsForwarder

短信转发器——监控Android手机短信、来电、APP通知,并根据指定规则转发到其他手机:钉钉群自定义机器人、钉钉企业内机器人、企业微信群机器人、飞书机器人、企业微信应用消息、邮箱、bark、webhook、Telegram机器人、Server酱、PushPlus、手机短信等。包括主动控制服务端与客户端,让你轻松远程发短信、查短信、查通话、查话簿、查电量等。(V3.0 新增)PS.这个APK主要是学习与自用,如有BUG请提ISSUE,同时欢迎大家提PR指正

KotlinBSD 2-Clause "Simplified" Licensesmsdingding
27.2k3.3k
arendst/Tasmota

Alternative firmware for ESP8266 and ESP32 based devices with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX. Full documentation at

CGNU General Public License v3.0tasmotafirmware
tasmota.github.io/docs
24.6k5.1k
thingsboard/thingsboard

Open-source IoT Platform - Device management, data collection, processing and visualization.

JavaMavenApache License 2.0visualizationiot
thingsboard.io
22.1k6.4k
influxdata/telegraf

Agent for collecting, processing, aggregating, and writing metrics, logs, and other arbitrary data.

GoGo ModulesMIT Licensetelegrafmonitoring
influxdata.com/telegraf
17.7k5.8k
emqx/emqx

The most scalable and reliable MQTT broker for AI, IoT, IIoT and connected vehicles

ErlangOthermqttiot
emqx.com
16.5k2.5k
rabbitmq/rabbitmq-server

Open source RabbitMQ: core server and tier 1 (built-in) plugins

JavaScriptnpmOtherrabbitmqamqp
rabbitmq.com
13.8k4k
cesanta/mongoose

Embedded web server, with TCP/IP network stack, MQTT and Websocket

COtherwebsocketmqtt
mongoose.ws
12.9k2.9k
esphome/esphome

ESPHome is a system to control your ESP32, ESP8266, BK72xx, RP2040 by simple yet powerful configuration files and control them remotely through Home Automation systems.

C++Otherhome-automationiot
esphome.io
11.4k5.5k
eclipse-mosquitto/mosquitto

Eclipse Mosquitto - An open source MQTT broker

COthermqttbroker
mosquitto.org
11.1k2.6k