Why NanoMQ

MQTT 5.0 + NanoMQ/NNG

MQTT 5.0 + NanoMQ/NNG

MQTT Bridges (Cloud + Edge)

MQTT Bridges (Cloud + Edge)

Embedded Rule Engine

Embedded Rule Engine

Message Backup in Edge

Message Backup in Edge

Efficiency

To reach a performance-resources equilibrium on any embedded platform, NanoMQ is capable of utilizing the computing power of different hardware in the best effort via its rich tunning options. Hence it provides high throughput on resource-constrained devices.

Efficiency

Scalability

NanoMQ is on multi-threading steroids. Based on the optimized NNG's asynchronous I/O framework towards Linux & MQTT, NanoMQ can scale out easily to engage multiple cores with less CPU usage in the modern SMP system.

Scalability

Compatibility

POSIX-based operating systems are by far the most popular and widely deployed, and it is the only prerequisite of NanoMQ. Users can use NanoMQ on any POSIX compatible system to avoid any OS locked-in problem.

Compatibility

Portability

A significant goal of NanoMQ is to be highly portable so that we minimized its dependency. NanoMQ's core features are implemented purely with C/C++ and without any third-party library. That means it only requires a tiny amount of work for porting.

Portability

Performance

NanoMQ is born for the edge and delivers exceptionally high throughput and low latency with a built-in actor model. Such performance enables more possibilities for data convergence in an edge-centric paradigm.

Performance

All-round

To tackle the fragmented protocol status quo of edge computing. NanoMQ provides an all-around messaging bus for mainstream protocols such as MQTT, nanomsg, WebSocket. ZMQ and DDS are also on our roadmap. Additionally, NanoMQ also provides a benchmarking and MQTT testing toolkit inside the package.

All-round

QuickStart

Installing via Docker

docker run -d --name nanomq emqx/nanomq:0.7.9

Or build from source

Requires a C99 & C++11 compatible compiler and CMake (v3.13 or newer)

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

NanoMQ MQTT client usage

# Publish
nanomq pub  start --url <url> -t <topic> -m <message> [--help]

# Subscribe 
nanomq sub  start --url <url> -t <topic> [--help]

# Connect
nanomq conn start --url <url> [--help]

Community

Welcome to the NanoMQ community, you can follow the community and get help in the following ways.

icon-discord
icon-slack
icon-askemq
icon-github
icon-twitter
icon-youtube
Join Our Community