EMQX Edge
v1.5.0
发布日期:2026-06-15
新功能
MQTT Stream & Parquet
- 新增 MQTT Stream。该内置功能支持本地 MQTT 数据持久化和按时间范围查询,且不影响实时消息转发。
- 新增自描述 Parquet 元数据,并通过
parquet_file_queue支持按主题管理文件。 - 新增 REST API,支持按主题、时间范围和分页查询 MQTT Stream 数据,并通过
/api/v4/tools_vg/aes_enc_parquet_meta加密 Parquet 元数据。
AES-GCM 加密
- 新增动态密钥选择和加密方法配置支持,包括 CLI 加密工具,以及新的
encrypt_method和encrypted_keySSL 配置参数。
Topic Alias
- 通过可配置的
max_topic_alias参数,在 CONNACK 报文中新增最大 Topic Alias 协商能力,并增强校验逻辑。
REST API
- 增强
client_info,支持多条件查询;重构client_case;合并安全检查和边界校验;并新增message_expiry_interval支持。
Dashboard 更新到 0.0.8
- 新增 MQTT Stream:
- 按主题、时间范围和 schema 查询消息数据,并查看 payload。
- 管理 Flow,包括主题、Flow 类型、队列以及 Parquet/加密配置。
增强
MQTT Handler
- 优化 MQTT handler 解析器,并增强共享订阅保护,防止溢出崩溃。
- 修正清理顺序,在发送 Will 消息前释放
conn_param。 - 通过 AI fuzzing 发现的问题,对 MQTT 协议解析器和编解码器进行加固,修复内存损坏和溢出问题。
Bridge
- 新增 TLS 支持,包括 SNI 和 SSL peer verification;支持 TCP 和 QUIC 客户端自动启动 dialer;并新增
no_local_v4和try_private选项用于连接控制。
TLS
- 新增 TLS 连接超时,避免握手挂起。
NNG
- 同步最新 NNG 上游更新,包括以下修复和改进:
- 将 QoS 消息重发从协议层重构到传输层(TCP/TLS/WebSocket),修复数据竞争并强制按序重发。
- 提升并发安全性,包括在
timer_cb中安全访问p->busy、在获取conn_param时保护 pipe 关闭,以及更安全地重写hash_table和qos_db。 - 提升传输层安全性,包括拒绝无效报文类型,以及修复 WebSocket
CONNACK中的conn_param引用计数。
配置
- 更新示例配置,加入
max_topic_alias并澄清相关选项。
修复
- 修复
decode_pub_message和 REST API 中的 heap-buffer-overflow。 - 修复
unsub_handler、fuzz_unsub_handler和sub_handler共享订阅保护器中的崩溃问题。 - 修复调用
quic_dialer_close时的类型混淆问题。 - 修复 publish、subscribe 和 unsubscribe handler 中 MQTT v5 属性在 decode error 路径下未释放的问题。
- 修复 fuzzing 发现的属性解析崩溃。
- 修复 exchange node 中 Parquet 配置未初始化的问题。
- 修复 WebSocket send callback 中 QoS ack 消息泄漏。
- 修复高并发 MQTT v5 QoS 1 负载下,由 timer callback 中不安全访问
p->busy导致的 SIGABRT 崩溃。
v1.4.1
发布日期:2026-06-10
该包版本仅包含修复。
修复
- 修复未设置
file_name_prefix时的崩溃。 - 修复使用
AES_GCM_CTR_V1读取加密的新版本 Parquet 时的错误。 - 修复 REST API 和 webhook HTTP 响应处理中的内存泄漏,以及
sub_handler中的空指针解引用。
v1.4.0
发布日期:2026-04-13
增强
- 将二进制文件名从
nanomq重命名为emqx-edge。 - 新增多 Dashboard 账号支持。可在 Dashboard UI 中创建和管理额外账号。
- HTTP server 配置中的密码现在以加密形式存储。
- 新增 HTTP server 的 TLS/HTTPS 支持。
- 新增 OpenSSL 和 MbedTLS TLS 层的 ALPN 设置支持。
- 新增为每个 Bridge 主题创建按主题 LMQ 的支持。
- 为实验性 MQTT Stream 实现新增 fuzz testing 支持。
- 将
l8w8jwt从 2.1.0 更新到 2.5.0。 - 将 EMQX Edge Dashboard 更新到 0.0.7。
- 将 superuser 配置从 Authentication 移动到 Authorization。
- 新增多个 Dashboard 登录账号支持。
- 新增 HTTP ACL 请求中
access和topic参数支持。 - 新增 ACL 和 superuser HTTP 请求的 ACL cache TTL 配置支持。
修复
- 修复读取配置文件路径时参数解析提前停止的问题。
- 修复消息未投递时 retain 标志不正确的问题。
- 修复客户端将 keepalive 设置为 0 时 keepalive 行为不正确的问题。
- 修复 WebSocket 传输层中互斥锁保护范围不正确的问题。
- 修复启用
no_local时 macOS 上 POSIXsend接口兼容性问题。 - 修复 retained message 中缺少 pipe ID 属性的问题。
- 修复访问 HTTPS server 时的 TLS alert 和 PSA API 错误。
- 修复配置中出现额外用户名和密码的问题。
- 修复导致 MQTT v5 Will message 编码失败的错误。
- 修复 Parquet search 和消息拼接/拆分中的潜在内存泄漏。
- 修复 Webhook AIO callback 中 HTTP 响应处理的潜在内存泄漏。
- 修复 base62 encoding 相关 CI 错误。
- 修复若干拼写错误和 CI 问题。
v1.3.0
发布日期:2025-01-29
增强
- 更新许可政策。许可过期时,EMQX Edge 将停止接受新的 MQTT 连接,而不是退出。
- 新增 MQTT over QUIC 桥接,支持通过 QUIC 传输进行安全、低延迟桥接。
- 新增不同 Docker 平台共享 tag 支持。
- 优化 MQTT 桥接中的消息重发流程和检查逻辑。
- 优化 GitHub workflow 以简化 Docker 镜像构建,减小镜像体积并缩短构建时间。
- 将 EMQX Edge Dashboard 更新到 0.0.6。
- 在 Dashboard 中新增 Subscription Topic Tree,用于 MQTT 订阅主题的层级可视化。
- 增强认证和授权配置的易用性。
- 新增 MQTT over QUIC 桥接支持。
- 新增许可过期提醒。
修复
- 修复处理 MQTT v3.1.1 SUBSCRIBE 报文时缺少 UTF-8 字符串长度校验的问题。
- 更新 Docker 镜像中的配置文件路径。
- 修复 SNI 和 SQLite 相关配置错误。
- 修复 WebSocket 层中的内存地址安全问题。
- 修复 Rule Engine 中的内存地址安全问题。
- 修复 QUIC 桥接指标无法正常工作的问题。
- 修复启用 ACL 时内置 MQTT client hook trigger 持续重连的问题。
- 修复启用 ACL cache 时 Super Request 无法工作的问题。
- 修复 Dashboard reload 后无法获取 QUIC 桥接状态的问题。
- 修复读取带毫秒(
ms)单位的配置项时的错误。 - 修复执行 Parquet 历史查询时的错误。
- 修复 QUIC 桥接 reload 时关闭空 QUIC 连接的问题。
- 当配置无效值时,将
max_ack_delay重置为默认最大值。 - 修复 Dashboard 无法访问
quic_handshake_timeout的问题。 - 修复证书设置为 null 时 QUIC 桥接行为不正确的问题。
- 修复解析空加密密码时的错误。
- 修复部分 QUIC 选项默认值不正确的问题。
v1.2.0
发布日期:2025-11-14
增强
- EMQX Edge Docker 镜像现已可用。
- 新增通过 HTTP API 发布 Base64 解码二进制 payload 的支持。
- 新增通过配置文件为 TLS bridge 配置 SNI 的支持。
- 新增在 Windows 上下载所有日志的能力。
- 将 Dashboard 更新到 0.0.5。
修复
- 修复 Home 页面中 Windows 发布包未正确更新的问题。
- 修复发布包名称。
- 修复 reload bridge 时触发的 heap use-after-free 错误。
- 修复使用 TCP bridge 时仍显示 TLS 相关日志的误导性日志输出。
注意
- 在该版本中,SQLite 功能默认启用。这可能会影响 Broker 和 Bridge 的性能。如有需要,请按照全局配置中的说明禁用。
v1.1.1
发布日期:2025-10-27
增强
- 调整 heartbeat 日志打印间隔。
- 新增 MQTT Bridge 连接中配置 Server Name Indication(SNI)的支持。
- 新增无行号日志输出支持,便于在需要时获得更简洁的日志格式。
- 重构 Linux CI workflow,改为基于 Dockerfile 的方式。
修复
- 修复 ee 包未正确上传到网站的问题。
- 修复 ee release notes 未正确同步到网站的问题。
v1.1.0
发布日期:2025-09-19
概览
- EMQX Edge 现在可以安装并运行在 Windows 系统上。
- 在配置文件中引入加密密码支持,提升安全性。
- 新增用于获取系统和应用日志的 REST API。
- 实现新的 HTTP 框架,并集成 AES 加密模块,以提升性能和安全性。
- 将 Dashboard 升级到 v0.0.4,提供更流畅的用户体验。
- 修复多个问题,提升整体可靠性和性能。
增强
安全
- 引入新的 AES 加密模块。
- 通过新的 REST API 新增 AES 加密数据支持。
- 新增配置文件中加密 bridge 密码支持。
- 将认证中的明文密码替换为 Base64 解码后的加密密码。
REST API
- 新增获取最新日志条目的 REST API。
- 新增下载包含所有日志文件的 tarball archive 的 REST API。
- 新增启用或禁用 ACL 规则和 bridge cache 的 REST API。
- 增强授权 REST API,支持访问客户端 IP 地址。
- 扩展 metrics REST API,加入更多指标。
Windows 支持
- 发布 Windows 版本 EMQX Edge 包。
- 新增专用于 Windows 部署的配置文件。
- 在 Windows 上启用 TLS、SQLite caching 和 JWT authentication 支持。
配置和协议
- 更新配置文件以反映新功能和选项。
- 更新默认最大报文大小,以符合 MQTT 协议定义的限制。
性能和可观测性
- 实现新的 HTTP 请求处理框架,提供更好的性能。
- 改进客户端事件的在线/离线通知消息。
- 新增 heartbeat 日志消息,用于监控运行状态。
Dashboard
- 将 Dashboard 升级到 0.0.4,带来 UI 和稳定性改进。
修复
安装
- 修复 Windows 上的启动命令,使其与 Linux 行为一致,统一跨平台启动流程。
连接和桥接
- 修复 QUIC 层中的潜在数据竞争。
- 修复本地 WebSocket 和 TLS 客户端无法接收订阅消息的问题。
- 修复启用
auth.http时内置 MQTT client 持续重连的问题。 - 修复 hybrid bridging 模式中
resend aio可能为null的问题。
可观测性
- 修复发送和接收流量字节计数不正确的问题。
- 修复 Windows 上 CPU 和内存使用统计不准确的问题。
- 修复 hybrid bridging 模式中 bridge cache 字节统计不正确的问题。
Dashboard
- 修复 Dashboard 与可用 API endpoint 不匹配的问题。
- 修复 Dashboard 无法在 Windows 上获取最新日志的问题。
- 修复 Dashboard 无法在 Windows 上切换日志页面的问题。
v1.0.0
发布日期:2025-08-19
增强
- 新增 Dashboard 支持,包括监控、安全设置、数据桥接设置和 MQTT 客户端工具。
- 新增企业许可支持。
- 新增独立的 EMQX Edge 配置文件。
- 新增用于获取许可全部信息的 REST API。
- 新增用于获取活跃 MQTT 连接的 REST API。
- 默认启用 MQTT over WebSocket。
- 新增多平台支持,包括 armhf、arm64 和 amd64(x86_64)。
修复
- 改进 Broker 启动时的日志消息。
- 修复添加 HTTP authentication header 后 NanoMQ 无法启动的问题。
- 修复 bridge 创建时默认 TLS 值为 false,但重启后变为 true 的问题。
- 修复收到无效 reload request 时 NanoMQ 无响应的问题。
- 修复通过 REST API 更新 authentication 和 authorization 的 enable 字段不生效的问题。
- 修复配置文件中 authorization password 占位符错误的问题。
- 修复点击 Save 按钮两次导致 bridge node 中某字段 double free 的问题。
- 更新包名称。
- 修复 authorization 中未设置 params 时 NanoMQ 访问空指针的问题。