Pre-Boost Review Release
Version 1.0.2 is the latest release before the scheduled formal Boost review and it includes the following changes:
General changes
- License changed to Boost Software License 1.0.
- Extended compiler support to include g++9, g++13 and g++14.
Library changes
- The library fully complies with
Boost.Asio
(Boost version 1.86):- Added support for default completion tokens.
- Added support for
boost::asio::cancel_at
,boost::asio::cancel_after
, and partial completion tokens. - Added support for immediate executors for
async_publish
,async_subscribe
, andasync_unsubscribe
.
- Changed the handling of
CONNACK
reason codes received from the Broker.- Previous behaviour: The
mqtt_client
would only attempt to reconnect to the Broker if it received specific reason codes in theCONNACK
packet:unspecified_error
,server_unavailable
,server_busy
, andconnection_rate_exceeded
. - New behaviour: The
mqtt_client
will attempt to reconnect on any reason code that indicates an error.
- Previous behaviour: The
- Modified handling of buffered
PUBLISH
packets when the broker sets theReceive Maximum
property:- Previous behaviour:
QoS
> 0 packets were queued at the end of the buffer, causingQoS
= 0 PUBLISH packets to be sent first. - New behaviour: Packets now follow the order of
async_publish
calls. However, someQoS
= 0 packets may be transmitted earlier if the Client reaches the Broker'sQoS
> 0 (Receive Maximum
) processing limit.
- Previous behaviour:
- Changed the treatment of the
async_run
completion handler's associated executor:- Previous behaviour: The handler's associated executor would replace
mqtt_client
's default executor. - New behaviour: The handler’s associated executor will execute internal operations without replacing
mqtt_client
's default executor. If the handler has no associated executor, then themqtt_client
's default executor will be used instead.
- Previous behaviour: The handler's associated executor would replace
- Fixed an issue preventing
async_publish
from accepting an emptyTopic Name
when aTopic Alias
was provided in thePUBLISH
properties.
Documentation changes
- Added step-by-step guides for
mqtt_client
usage. - Provided explanations of key library features such as auto-reconnect and retry mechanisms.
- Added insights into the client's internal workings.
- Added numerous ready-to-run code examples.
Full Changelog: v1.0.1...v1.0.2