Skip to content

EMQX Edge

v1.5.0

Release Date: 2026-06-15

New Features

MQTT Stream & Parquet

  • Added MQTT Stream, a built-in feature for local MQTT data persistence and time-range queries without affecting real-time message forwarding.
  • Added self-descriptive Parquet metadata and topic-specific file management through parquet_file_queue.
  • Added REST API support to query MQTT Stream data by topic, time range, and pagination, and to encrypt Parquet metadata through /api/v4/tools_vg/aes_enc_parquet_meta.

AES-GCM Encryption

  • Added support for dynamic key selection and encryption method configuration, including a CLI encryption tool and new encrypt_method and encrypted_key SSL configuration parameters.

Topic Alias

  • Added maximum topic alias negotiation in CONNACK packets through the configurable max_topic_alias parameter, with enhanced validation.

REST API

  • Enhanced client_info with multi-condition queries, refactored client_case, consolidated safety checks and boundary validation, and added message_expiry_interval support.

Updated Dashboard to 0.0.8

  • Added MQTT Stream:
    • Query message data by topic, time range, and schema, with payload viewing.
    • Manage flows, including topic, flow type, queue, and Parquet/encryption configuration.

Enhancements

MQTT Handler

  • Optimized the MQTT handler parser and enhanced shared subscription protection to prevent overflow crashes.
  • Corrected the cleanup order by freeing conn_param before sending Will messages.
  • Hardened the MQTT protocol parser and codec with memory corruption and overflow fixes found through AI fuzzing.

Bridge

  • Added TLS support with SNI and SSL peer verification, automatic dialer startup for TCP and QUIC clients, and the no_local_v4 and try_private options for connection control.

TLS

  • Added a TLS connection timeout to prevent handshake hangs.

NNG

  • Synchronized with the latest NNG upstream updates, including the following fixes and improvements:
    • Refactored QoS message resend from protocol layer to transport layer (TCP/TLS/WebSocket), fixing data races and enforcing in-order resend.
    • Improved concurrency safety with safe p->busy access in timer_cb, protected pipe closure during conn_param retrieval, and safer rewrites of hash_table and qos_db.
    • Improved transport safety by rejecting invalid packet types and fixing the WebSocket conn_param reference count in CONNACK.

Configuration

  • Updated the example configuration with max_topic_alias and clarified related options.

Fixes

  • Fixed heap-buffer-overflow in decode_pub_message and the REST API.
  • Fixed crashes in unsub_handler, fuzz_unsub_handler, and the sub_handler shared subscription protector.
  • Fixed type confusion when calling quic_dialer_close.
  • Fixed MQTT v5 properties not being freed on decode error paths across publish, subscribe, and unsubscribe handlers.
  • Fixed property parse crash found by fuzzing.
  • Fixed an issue where the Parquet configuration was not initialized in the exchange node.
  • Fixed QoS ack message leak in WebSocket send callback.
  • Fixed SIGABRT crash under high-concurrency MQTT v5 QoS 1 workloads caused by unsafe p->busy access in timer callback.

v1.4.1

Release Date: 2026-06-10

This package release includes fixes only.

Fixes

  • Fixed crash when file_name_prefix is not set.
  • Fixed error when reading encrypted new version Parquet with AES_GCM_CTR_V1.
  • Fixed memory leaks in the REST API and webhook HTTP response handling, and fixed a null pointer dereference in sub_handler.

v1.4.0

Release Date: 2026-04-13

Enhancements

  • Renamed the binary from nanomq to emqx-edge.
  • Added support for multiple Dashboard accounts. Additional accounts can be created and managed from the Dashboard UI.
  • Passwords in the HTTP server configuration are now stored in an encrypted form.
  • Added TLS/HTTPS support for the HTTP server.
  • Added support for setting ALPN for OpenSSL and MbedTLS TLS layers.
  • Added support for creating a per-topic LMQ for each Bridge topic.
  • Added fuzz testing support for the experimental MQTT Stream implementation.
  • Updated l8w8jwt from 2.1.0 to 2.5.0.
  • Updated EMQX Edge Dashboard to 0.0.7.
    • Moved superuser configuration from Authentication to Authorization.
    • Added support for multiple Dashboard login accounts.
    • Added support for access and topic parameters in HTTP ACL requests.
    • Added support for configuring ACL cache TTL for ACL and superuser HTTP requests.

Fixes

  • Fixed an error where argument parsing stopped when reading the configuration file path.
  • Fixed incorrect retain flags when a message was not delivered.
  • Fixed incorrect keepalive behavior when a client set keepalive to 0.
  • Fixed an incorrect mutex guard range in the WebSocket transport layer.
  • Fixed a compatibility issue with the POSIX send interface on macOS when no_local was enabled.
  • Fixed a missing pipe ID property in retained messages.
  • Fixed a TLS alert and PSA API error when accessing the HTTPS server.
  • Fixed extra usernames and passwords appearing in the configuration.
  • Fixed an error that caused Will message encoding to fail for MQTT v5.
  • Fixed potential memory leaks in Parquet search and message concatenation/splitting.
  • Fixed a potential memory leak in HTTP response handling in the Webhook AIO callback.
  • Fixed a CI error related to base62 encoding.
  • Fixed several typos and CI issues.

v1.3.0

Release Date: 2025-01-29

Enhancements

  • Updated license policy. EMQX Edge will stop accepting new MQTT connections rather than exit when the license expires.
  • Added MQTT over QUIC bridge for secure and low-latency bridging over QUIC transport.
  • Added shared tag for different Docker platforms.
  • Optimized the process of message resend and check logic of the MQTT bridge.
  • Optimized the GitHub workflow to streamline Docker image builds, reducing image size and build time.
  • Updated EMQX Edge Dashboard to 0.0.6.
    • Added Subscription Topic Tree to Dashboard for hierarchical visualization of MQTT subscription topics.
    • Enhanced the usability of authentication and authorization configurations.
    • Added support for MQTT over QUIC bridge.
    • Added license expiration reminder.

Fixes

  • Fixed missing UTF-8 string length validation when handling MQTT v3.1.1 SUBSCRIBE packets.
  • Updated the configuration file path in the Docker image.
  • Fixed configuration errors related to SNI and SQLite.
  • Fixed memory address security issues in WebSocket layer.
  • Fixed memory address security issues in Rule Engine.
  • Fixed an issue where QUIC bridge metrics did not work correctly.
  • Fixed an issue where the built-in MQTT client hook trigger kept reconnecting when ACL was enabled.
  • Fixed an issue where Super Request did not work when ACL cache was enabled.
  • Fixed an error where Dashboard could not retrieve the QUIC bridge status after reloading.
  • Fixed an error when reading configuration items with millisecond (ms) units.
  • Fixed errors when performing Parquet history queries.
  • Fixed an issue where a null QUIC connection was closed during QUIC bridge reload.
  • Reset max_ack_delay to the default maximum value when an invalid value was configured.
  • Fixed an issue where the Dashboard failed to access quic_handshake_timeout.
  • Fixed incorrect QUIC bridge behavior when certificates were set to null.
  • Fixed an error when parsing a null encrypted password.
  • Fixed incorrect default values for some QUIC options.

v1.2.0

Release Date: 2025-11-14

Enhancements

  • EMQX Edge Docker Image is available now.
  • Added support for publishing Base64-decoded binary payloads via the HTTP API.
  • Added support for configuring SNI for TLS bridges through the configuration file.
  • Added the ability to download all logs on Windows.
  • Updated the Dashboard to version 0.0.5.

Fixes

  • Fixed an issue where Windows release packages were not correctly updated on the Home page.
  • Fixed the name of the release package.
  • Fixed a heap use-after-free error triggered when reloading a bridge.
  • Fixed misleading log outputs that displayed TLS-related logs even when using a TCP bridge.

Note

  • In this version, the SQLite feature is enabled by default. This may affect the performance of the Broker and the Bridge. Follow the instructions in the Global Settings to disable it if necessary.

v1.1.1

Release Date: 2025-10-27

Enhancements

  • Adjusted the heartbeat log print interval.
  • Added support for configuring Server Name Indication (SNI) in MQTT Bridge connections.
  • Added support for outputting logs without line numbers, allowing for cleaner log formatting when needed.
  • Refactored the Linux CI workflow to use a Dockerfile-based approach.

Fixes

  • Fixed an issue where the ee package was not correctly uploaded to the website.
  • Fixed an issue where the ee release notes were not properly synchronized to the website.

v1.1.0

Release Date: 2025-09-19

Summary

  • EMQX Edge can now be installed and run on Windows systems.
  • Introduced encrypted password support in configuration files to enhance security.
  • Added new REST APIs for retrieving system and application logs.
  • Implemented a new HTTP framework and integrated an AES encryption module for improved performance and security.
  • Upgraded Dashboard to version v0.0.4, providing a smoother user experience.
  • Fixed multiple issues to improve overall reliability and performance.

Enhancements

Security

  • Introduced a new AES encryption module.
  • Added support for AES-encrypted data through new REST APIs.
  • Added support for encrypted bridge passwords in configuration files.
  • Replaced plain-text passwords in authentication with Base64-decoded encrypted passwords.

REST APIs

  • Added REST APIs to retrieve the latest log entries.
  • Added REST APIs to download a tarball archive containing all log files.
  • Added REST APIs to enable or disable ACL rules and bridge cache.
  • Enhanced authorization REST APIs to access the client’s IP address.
  • Expanded the metrics REST API with additional metrics.

Windows Support

  • Released EMQX Edge packages for Windows.
  • Added a dedicated configuration file for Windows deployments.
  • Enabled TLS, SQLite caching, and JWT authentication support on Windows.

Configuration and Protocols

  • Updated configuration files to reflect new features and options.
  • Updated the default maximum packet size to comply with MQTT protocol-defined limits.

Performance and Observability

  • Implemented a new HTTP request-handling framework with better performance.
  • Improved online/offline notification messages for client events.
  • Added heartbeat log messages to monitor runtime activity.

Dashboard

  • Upgraded the Dashboard to version 0.0.4, delivering UI and stability improvements.

Fixes

Installation

  • Fixed the start command on Windows to match Linux behavior, unifying the startup process across platforms.

Connectivity and Bridging

  • Fixed a potential data race condition in the QUIC layer.
  • Fixed an issue where local WebSocket and TLS clients couldn't receive subscription messages.
  • Fixed a bug where the built-in MQTT client kept reconnecting when auth.http was enabled.
  • Fixed an issue where resend aio could be null in hybrid bridging mode.

Observability

  • Fixed incorrect byte counters for sent and received traffic.
  • Fixed inaccurate CPU and memory usage statistics on Windows.
  • Fixed incorrect bridge cache byte statistics in hybrid bridging mode.

Dashboard

  • Fixed mismatches between the Dashboard and available API endpoints.
  • Fixed an issue where the Dashboard couldn't fetch the latest logs on Windows.
  • Fixed a bug preventing the Dashboard from switching log pages on Windows.

v1.0.0

Release Date: 2025-08-19

Enhancements

  • Added support for dashboard, including monitoring, security settings, data bridge settings, and MQTT client tools.
  • Added enterprise license support.
  • Added a separate configuration file for EMQX Edge.
  • Added REST APIs to get all the informations of the license.
  • Added REST APIs to get active MQTT connections.
  • Enable MQTT Over WebSocket by default.
  • Added support for multiple platforms, including armhf arm64 and amd64 (x86_64).

Fixes

  • Improved logging messages when the broker starts.
  • Fixed an issue where NanoMQ fails to start when adding an HTTP authentication header.
  • Fixed an issue where the default TLS value for bridge creation is false, but changes to true after restart.
  • Fixed an issue where NanoMQ doesn't response when received a invalid reload request.
  • Fixed an issue where updating enable field in authentication and authorization by REST APIs doesn't work.
  • Fixed the wrong placeholder of password in authorization in configuration file.
  • Fixed an issue where clicking Save button twice causes a double free of a field in bridge node.
  • Updated the package name.
  • Fixed an issue where NanoMQ access a null pointer when there are no params set in authorization.