rust-mqtt 0.6.0 achieves full MQTTv5 support

88 points AverageClassic2 7 comments

Hi all,

You might remember me from this post half a year ago about the original rust-mqtt rewrite.

Over the last six months, I've been busy working on rust-mqtt - an embedded-ready MQTT client - and adding the missing MQTTv5 features, most notably full support for enhanced authentication. These are now available with the 0.6.0 release.

Around a year ago, I took ownership of this unmaintained project and turned it into what I believe is a high-quality and production-ready MQTT client.

I've learnt a lot along the way and plan to continue with:

  • Support for MQTT version 3.1.1
  • More versatile memory management and I/O

While no_std/no_alloc remains the primary target, std environments will receive further attention, allowing for more comfortable usage on desktop platforms as well.

P.S. One feature in 0.6.0 I'm particularly proud of is manual acknowledgments. Implementing this pushed me to study the specification very thoroughly - leading to a new state machine with a comprehensive test suite validating every normative statement for these flows under all conditions, even the rarest edge cases. If protocol correctness is a priority for you, it's definitely worth a look!