Releases: redboltz/async_mqtt
Releases · redboltz/async_mqtt
9.0.2
9.0.1
9.0.0
Breaking Changes
endpoint
,basic_endpoint
, andclient
have become value-based designs. #346- The static member function
create()
has been removed. - The constructor is now public.
- Move constructor is supported.
- You can replace
endpoint<...>::create(...)
withendpoint<...>{...}
for value orstd::make_shared<endpoint<...>>(...)
forshared_ptr
.
- The static member function
- Updated the timeout duration setting function parameter type to
std::chrono::milliseconds
. #342, #345- Users can now pass any duration types such as
std::chrono::milliseconds
,std::chrono::seconds
, etc. - The minimum resolution is milliseconds.
- Users can now pass any duration types such as
Other Updates
- Moved all implementations of
basic_endpoint
member functions toimpl
. #343 - Deleted unused and undefined
is_error()
function. #341 - Deleted
client
move operations. #339 - Fixed CMake warnings due to CMP0167. #338
- Removed invalid
#
. #336, #337 - Refined documentation. #335, #340, #347
- Added separate compilation mode customization points. #331
- Added destructor comments for
basic_endpoint
andclient
. #330 - Refined unit tests. #328, #329
- Updated CLI library. #327
- Added all RTT output modes to
bench
. #326 - Fixed private constructor selection issue on
publish
packet. #325 - Refined tests. #322, #333, #334
8.0.1
8.0.0
Breaking Changes
client
becomesshared_ptr
similar toendpoint
. #315- To create
client
instance, useclient<...>::create(args)
similar toendpoint
. - This is required to ensure the client's lifetime during async operation is maintained.
client
andendpoint
now have a consistent interface.
- To create
Other Updates
7.0.0
Breaking Changes
client::async_recv()
CompletionHandler signature is updated tovoid(error_code, packet_variant)
. #281packet_variant
has one ofstd::monostate
,[v3_1_1|v5]::publish_packet
,[v3_1_1|v5]::disconnect_packet
, orv5::auth_packet
.
- Renamed the typename from
pubres_t
topubres_type
for consistency. #280 - Re-designed error_code handling to align with Boost.Asio's approach. #266, #270, #271, #272, #273, #299
- All async functions have the Completion Handler signature as
void(async_mqtt::error_code, ...)
, exceptvoid()
.- This ensures compatibility with other Boost.Asio based libraries, and Boost.Asio itself.
- All async functions have the Completion Handler signature as
Other Updates
- Added footprint example. #304
- Added
async_auth()
to client. #303 - Added reconnect code to examples. #302
- Fixed dangling reference on
underlying_handshake
. #301 - Added bulk read functionality. #300
- Refined CI. #295
- Fixed
async_acquire_unique_packet_id_wait_until()
cancel support. #292 - Refined packet reading. Fixed Header and the first byte of Remaining Length are read all at once. #291
- Fixed
set_pingreq_send_interval_ms()
value 0 treatment. #290 - Fixed non-existent topic alias treatment. #289
- Fixed
connack
packet sending condition on error. #288 - Fixed
async_recv
after cancel behaving invalidly. #287 - Fixed cancel treatment. #286
- Added using recycling allocator option for the broker. #283
- Added separate compilation mode support. #282
- To enable separate compilation mode, define
ASYNC_MQTT_SEPARATE_COMPILATION
.
- To enable separate compilation mode, define
- Added
bind_cancellation_slot
test. #268 - Supported
PINGREQ
overriding byServerKeepAlive
. #271 - Refined tests. #269, #274, #275, #287, #288, #289, #290, #296, #297
- Refined documents. #276, #292, #305, #306, #307
- Refined tools (bench). #278
- Added endpoint getter to client. #279
6.0.0
Breaking Changes
- Added
async_
prefix to all async functions to support default completion token. #238, #242- Some of async/sync function overload had been conflicted. e.g.) acquire_unique_packet_id().
- Unified naming rule of types to
*_type
. #232 - Refined type of PacketIdentifier. Now
packet_id_type
is the type. #231 - Moved include/async_mqtt/broker/.hpp to tool/include/broker/.hpp #224
- Those are for broker application that is used for system testing.
- Re-organized directory structure with respect to boost libraries. #211, #229, #230, #234
- It affects the users only if include the specific header file directly.
- Re-designed strand handling. #206
- Template parameter Strand is removed. Users can pass strand wrapped executor for multi-threading.
- Associated properties of the completion handler are correctly propagated.
- Removed buffer from packet interface except the interface for advanced user. #195
- For example, create PUBLISH packet using "topic1", and get the field as string by
topic()
.- No
allocate_buffer("topic1")
is required.
- No
- For example, create PUBLISH packet using "topic1", and get the field as string by
- Organized predefined headers. #194
- For mqtt, include
async_mqtt/all.hpp
. In addition, - For mqtts, include
async_mqtt/predefined_layer/mqtts.hpp
- For ws, include
async_mqtt/predefined_layer/ws.hpp
- For wss, include
async_mqtt/predefined_layer/wss.hpp
- For mqtt, include
Other Updates
- Removed all boost::asio::bind_executor() from the library code. #247, #250
- Client supported flexible parameters. #241, #244
- You can pass not only packet instance but also the parameters of packet's constructor directly to the packet sending member functions.
- Supported default completion token. #238, #240
- Refined CI. #228
- Refined header dependency checking. #225
- Removed the inclusion of the Boost.Beast detail directory. #223
- Used bound allocator to allocate buffer for packet on receive. #222, #243
- Added convenient handshaking function for underlying layers. #216
- TCP, TLS, Websocket, Websocket on TLS are handshaked by one function call.
- Refined documents. #220, #222, #232, #233, #234, #235, #243, #252
- Refined examples. #214, #220, #250