The main focus of this release is support for the MQTT v5 specification.
Other changes:
Broker features:
- Improved general support for broker generated client ids. Removed libuuid dependency.
- auto_id_prefix now defaults to 'auto-'.
- Add max_keepalive option, to allow a maximum keepalive value to be set for MQTT v5 clients only.
- Add TLS Engine support.
- Add `bind_interface` option which allows a listener to be bound to a specific network interface, in a similar fashion to the `bind_address` option. Linux only.
- Add improved bridge restart interval based on Decorrelated Jitter.
- Add `dhparamfile` option, to allow DH parameters to be loaded for Ephemeral DH support
- Add explicit support for TLS v1.3.
- Drop support for TLS v1.0.
- Add support for Automotive DLT logging.
- Disallow writing to $ topics where appropriate.
- Fix mosquitto_passwd crashing on corrupt password file. Closes #1207.
- Client library features:
- Add mosquitto_subscribe_multiple() for sending subscriptions to multiple topics in one command.
- Add mosquitto_unsubscribe_multiple() for sending unsubscriptions to multiple topics in one command.
- Add TLS Engine support.
- Add explicit support for TLS v1.3.
- Drop support for TLS v1.0.
Client features:
- Add -E to mosquitto_sub, which causes it to exit immediately after having its subscriptions acknowledged. Use with -c to create a durable client session without requiring a message to be received.
- Add --remove-retained to mosquitto_sub, which can be used to clear retained messages on a broker.
- -V now accepts `5, `311`, `31`, as well as `mqttv5` etc.
- Add TLS Engine support.
- Add explicit support for TLS v1.3.
- Drop support for TLS v1.0.
Client fixes:
- mosquitto_pub wouldn't always publish all messages when using `-l` and QoS>0. This has been fixed.
The 1.6 release of the libmosquitto client library maintains API and ABI compatibility with all previous releases to version 1.0. The addition of support for MQTT v5 has resulted in the addition of a relatively large number of new functions in this release, with a lot of overlap with existing functions. The future 2.0 release will break API and ABI compatibility to remove the function overlap and allow other breaking improvements. This is the first breaking change since 2012.
The C++ wrapper around libmosquitto is a very thin wrapper and provides very little benefit to the end user over using libmosquitto directly. The Paho project has a C++ library that uses modern C++ features to provide a better experience for the C++ developer. The Mosquitto C++ wrapper is now deprecated and will be removed in the 2.0 release.
Mosquitto is available across a wide variety of platforms. The project provides binaries for Windows and Debian Linux, and maintains packages in third party repositories for Debian, Ubuntu, Snap packages, Mac homebrew, and Docker.
There are community supported packages for at least Alpine, Arch, Fedora, FreeBSD, MacPorts, Manjaro, OpenBSD, OpenSUSE, and OpenWrt.