Skip to content

Releases: redboltz/async_mqtt

9.0.2

13 Oct 01:27
51a97ad
Compare
Choose a tag to compare
  • Added ASYNC_MQTT_BUILD_EXAMPLES_SEPARATE option to enable library separate build example. #359
  • Fixed TLS timeout logic. #357
  • Fixed broker auth file for docker. #356

9.0.1

30 Sep 22:55
64793b8
Compare
Choose a tag to compare
  • Fixed TLS plug out timeout logic. #355
  • Refined client_cli tool. #354
  • Refined bench tool. #352
  • Refined docker container. #350
  • Moved setup_log.hpp to util/ (appropriate location). #349
  • Refined documents. #348, #349, #351

9.0.0

03 Sep 12:08
01003b5
Compare
Choose a tag to compare

Breaking Changes

  • endpoint, basic_endpoint, and client 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(...) with endpoint<...>{...} for value or std::make_shared<endpoint<...>>(...) for shared_ptr.
  • 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.

Other Updates

  • Moved all implementations of basic_endpoint member functions to impl. #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 and client. #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

28 Jun 08:49
0c0de85
Compare
Choose a tag to compare
  • Fixed required boost version. #322
    • Boost 1.84.0 or later is required.
      • If you don't build tests, Boost 1.82.0 or later is required.
  • Fixed bench tool infinity acquire packet_id problem on QoS1, 2. #320
  • Added ASYNC_MQTT_BUILD_LIB cmake option. #319
  • Restored missing Dockerfile.ubuntu. #318

8.0.0

25 Jun 08:27
b859411
Compare
Choose a tag to compare

Breaking Changes

  • client becomes shared_ptr similar to endpoint. #315
    • To create client instance, use client<...>::create(args) similar to endpoint.
    • This is required to ensure the client's lifetime during async operation is maintained.
    • client and endpoint now have a consistent interface.

Other Updates

  • Moved endpoint definition (using) to endpoint_fwd.hpp. #311, #312
  • Install *.ipp files along with other header files. #309
  • Refined documents. #308

7.0.0

19 Jun 02:35
8f63c48
Compare
Choose a tag to compare

Breaking Changes

  • client::async_recv() CompletionHandler signature is updated to void(error_code, packet_variant). #281
    • packet_variant has one of std::monostate, [v3_1_1|v5]::publish_packet, [v3_1_1|v5]::disconnect_packet, or v5::auth_packet.
  • Renamed the typename from pubres_t to pubres_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, ...), except void().
      • This ensures compatibility with other Boost.Asio based libraries, and Boost.Asio itself.

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.
  • Added bind_cancellation_slot test. #268
  • Supported PINGREQ overriding by ServerKeepAlive. #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

20 May 13:49
5e3ca56
Compare
Choose a tag to compare

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.
  • 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

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

5.1.2

07 May 13:08
311297c
Compare
Choose a tag to compare

5.1.1

05 May 09:30
8c6dc02
Compare
Choose a tag to compare
  • Added client's infinity timer cancelling without data arrival support. #185
  • Modified client::get_executor() return value.#184

5.1.0

04 May 07:24
21b89e6
Compare
Choose a tag to compare
  • Added tests. #180
  • Added high level MQTT client APIs support. #178