NanoMQ Documentation

website·Indexed 34 days ago

https://nanomq.io/

Documentation for NanoMQ, an MQTT broker featuring a rule engine and multi-protocol gateway support for ZMQ, SOME/IP, and DDS. Includes release notes from v0.3.8 through v0.25.6, configuration guides for nanomq.conf, and details on MQTT STREAM features and NanoNNG.

Tokens
97.4K
Snippets
491
Records
758
Agent score
68%

What's inside NanoMQ

  1. Overview of NanoMQ MQTT STREAM

    MQTT STREAM treats MQTT messages published to the same topic as a continuous data stream. This stream can be persisted to disk and queried, providing a solution for maintaining data completeness and reliability, especially in environments with unstable network connectivity.
  2. Overview of NanoMQ MQTT Broker

    NanoMQ is an open-source, lightweight, high-performance MQTT messaging broker specifically designed for IoT edge computing scenarios and Multi-access Edge Computing (MEC). It is built in collaboration with NNG, leveraging NNG's network API to optimize MQTT broker performance and SMP (Symmetric Multiprocessing) support on edge devices. It is designed to be ultra-lightweight (booting footprint < 200Kb) and highly portable across any POSIX-based platform.
  3. Overview of NanoMQ for Edge Computing

    NanoMQ is a next-generation lightweight, high-performance MQTT message server specifically designed for IoT edge computing scenarios. It is developed in pure C/C++ and relies only on native POSIX APIs, ensuring high compatibility and portability across various edge platforms.

    Key technical characteristics include:

    • Architecture: Based on NNG's asynchronous IO and multi-threaded model, optimized for the MQTT protocol.
    • Performance: Supports high throughput and low latency with strong SMP (Symmetric Multiprocessing) support.
    • Protocol Support: Fully supports MQTT 3.1.1. Planned future support includes MQTT 5.0 and other message bus protocols like ZMQ and Nanomsg.
    • Edge Capabilities: Planned features include an embedded rule engine, edge message caching, and offline retransmission.
  4. Overview of NanoMQ Toolkit utilities

    The NanoMQ Toolkit provides a set of command-line tools for managing the NanoMQ broker, testing performance, and transferring files. It consists of three primary components:

    1. Command Line Interface (CLI): Used to manage the message broker (connections, HTTP services, MQTT, TLS, and logging), operate client tools (Publish, Subscribe, and Connection management), and create/manage routing rules.
    2. Bench: A performance testing tool built with NanoSDK used to measure MQTT protocol performance, including message publishing, subscribing, and connection establishment to identify system bottlenecks.
    3. NFTP: A lightweight MQTT-based file transfer tool that supports one-to-one, many-to-one, and one-to-many transfers, as well as asynchronous transmission and breakpoint resumption (resume from where a transfer stopped).
  5. Overview of NanoMQ Multi-Protocol Gateways

    NanoMQ provides Multi-Protocol Gateways to bridge MQTT systems with other communication protocols. Supported gateways include:

    • ZMQ Gateway: Bridges ZeroMQ (ØMQ, 0MQ, zmq) applications with MQTT systems.
    • SOME/IP Gateway: Transforms MQTT messages into SOME/IP messages and vice versa, primarily for automotive Ethernet-based electronics/electrical (E/E) systems.
    • DDS Gateway: Bridges MQTT with the Data Distribution Service (DDS) standard, a high-performance, real-time publish-subscribe messaging system (e.g., using Cyclone DDS).
  6. Overview of NanoMQ Rule Engine

    NanoMQ includes a built-in rule engine designed for processing data at the edge. It enables developers to implement complex message routing, trigger automated operations, and integrate the MQTT environment with other systems (e.g., integrating with eKuiper for edge stream data analysis).
  7. Overview of NanoMQ Data Bridges

    Bridging allows the connection of multiple MQTT brokers. Unlike swarms, topic trees and routing tables are not replicated between nodes in bridge mode. Data bridges operate by forwarding messages to a bridge node based on defined rules and subscribing to topics from a bridge node to forward messages back to the local node or group.
  8. Overview of MQTT over QUIC Bridging in NanoMQ

    NanoMQ supports MQTT over QUIC bridging, allowing it to use the QUIC transport protocol when connecting to a cloud MQTT Broker. This provides several advantages over traditional TCP/TLS: faster connection establishment (0-RTT/1-RTT), elimination of head-of-line blocking via multiplexing, and better stability in high-loss or high-latency networks. It allows edge devices to continue using MQTT/TCP locally while the cloud-edge link benefits from QUIC performance.
  9. Overview of NanoMQ configuration formats

    NanoMQ supports two configuration file versions: Classical KV and HOCON. Starting from version 0.14, HOCON (Human-Optimized Config Object Notation) is the default format and is a superset of JSON. While Classical KV is still supported for legacy reasons, new features are exclusively supported in the HOCON format.
  10. Overview of NanoMQ Data Bridging

    Bridging is a strategy to connect multiple MQTT brokers. Unlike clustering, bridging does not replicate topic trees or routing tables. Its primary functions are: forwarding messages to a specified bridge node based on predefined rules, and subscribing to specific topics on a bridge node to distribute messages locally or within a cluster.
  11. Overview of QUIC capabilities in NanoMQ

    NanoMQ leverages QUIC to enhance MQTT connectivity, particularly in challenging network environments. Key capabilities include using QUIC as the transport layer for MQTT bridges between edge and cloud deployments, improving connection stability and reducing latency in weak, high-latency, or lossy networks, and supporting hybrid bridging to allow seamless switching between QUIC and traditional TCP transports.
  12. Overview of NanoMQ Toolkit

    The NanoMQ Toolkit provides a suite of command-line tools for managing the broker, testing performance, and transferring files. It includes a Command Line Interface (CLI) for broker, client, and rule operations, the Bench tool for MQTT performance testing, and nftp for MQTT-based file transfers.