NanoMQ v0.25.5 更新日志

NanoMQ 0.25.5 is ready now! We continue to serve the community by providing swift feedback to feature requests and security issue reports. Fixing multiple minor security issues, adding a new batch_resend option for rapid local QoS msg resend, and a new nolocal param for bridging client.

Attention! From 0.25.5, we drop the official binary release of MIPS & ARMel arch due to the incompatibility between Github 24.04 runner & newer MsQuic dependencies. Have to stick with times.

AI generated release notes:

NanoMQ v0.25.5 is a feature-enhancement and maintenance release focusing on hot-reloading capabilities, observability, and underlying protocol stability in the NanoNNG transport layer.

Core Features & Enhancements

Lock-free Configuration Reloading: Introduced a lock-free, hazard-pointer reclamation mechanism for applying ACL-file changes via nanomq reload. Additionally, dynamic reloading for log levels is now fully supported.

QoS & Resend Architecture: Implemented a new batch_resend policy. The QoS ACK handling logic has been structurally improved by moving it from the transport layer directly into the protocol layer.

State Machine Consolidation: Refactored and consolidated the internal state machine within broker.c to streamline connection lifecycle management.

Protocol Support: Added support for overwriting the No Local flag.

Stability & Bug Fixes

MQTT over WebSocket (mqtt_ws): Fixed critical AIO (Asynchronous I/O) state issues. Resolved a bug where qsaio ack-send callbacks could trigger a double-finish on user tx AIO, and ensured recv/send AIO completes correctly upon cancellation to prevent pipe-reaping deadlocks.

Shared Subscriptions: Fixed a storage bug to ensure offline QoS messages for shared subscriptions are accurately routed to cached sessions.

Memory & Concurrency: Resolved SQLite QoS message memory leaks within the resend loop and patched multiple data races flagged by ThreadSanitizer (TSan).

Observability & Tooling

Enhanced Logging: Security and debugging logs are now much more granular. ACL deny logs now actively include the clientid, username, and target topic. Furthermore, publisher clientid and username are now appended to per-message debug lines.

CI/CD & Build: Repaired broken CI workflows caused by MSQUIC API changes and the GitHub deprecation of Ubuntu 20.04 runners. Updated default and CI configurations to explicitly set max_topic_alias.

Community Acknowledgements

Thanks to our new contributors @jayenashar and @ingwinlu for their valuable fixes and documentation additions. Expensive Fable5 token appreciated.

What's Changed in NanoMQ

New Contributors

Full Changelog: https://github.com/nanomq/nanomq/compare/0.25.3...0.25.5

What's Changed in NanoNNG

New Contributors

Full Changelog: https://github.com/nanomq/NanoNNG/compare/0.25.3...0.25.5

EMQX Cloud

全托管的 MQTT 消息云服务。

免费试用 →

MQTT 协议入门与进阶

丰富、易理解的 MQTT 指南,助您快速入门 MQTT 协议。

了解更多 →