NanoMQ v0.25.5 Release Note

Jul 29, 2026

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

Fully managed MQTT messaging service.

14 Days Free Trial →

Learn MQTT Protocol

The rich and easy-to-understand MQTT guide to help you quickly get started with MQTT protocol.

Learn More →