-
Added invalid combination checking of sharename and nl(no local). #372
-
Fixed receive maximum processing. #371
-
Fixed invalid Message Expiry Interval applying. #369
-
Fixed invalid template parameter comparison. #368
-
Added custom logger example. #367
-
Refined documents. #364, #365
-
Made colored log selectable (by default true(colored)). #363
-
Fixed misuse of bound allocator. #362
-
Fixed TLS example. #361
-
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
-
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
-
endpoint, basic_endpoint, and client become value based design. #346
-
static member function
create()
is removed. -
constructor becomes public.
-
move constructor is supported.
-
you can replace
endpoint<…>::create(…)
withendpoint<…>{…}
for value orstd::make_shared<endpoint<…>>(…)
for shared_ptr.
-
-
Updated timeout duration setting function parameter type as
std::chorono::milliseconds
. #342, #345-
User can pass any duration types like
std::chrono::milliseconds
,std::chrono::seconds
, etc. -
The Mminimum resolution is milliseconds.
-
-
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 documents. #335, #340, #347
-
Added separate compilation mode customization points. #331
-
Added destructor comment for basic_endpoint and client. #330
-
Refined unit_test. #328, #329
-
Updated cli library. #327
-
Added all RTT output mode to bench. #326
-
Fixed private constructor chosen problem on publish packet. #325
-
Refined tests. #322, #333, #334
-
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 acqire packet_id problem on QoS1, 2. #320
-
Added
ASYNC_MQTT_BUILD_LIB
cmake option. #319 -
Restored missing Dockerfile.ubuntu. #318
-
client
becomesshared_ptr
similar asendpoint
. #315-
To create
client
instance,client<…>::create(args)
similar asendpoint
. -
This is required to keep client’s lifetime during async operation is working.
-
client
andendpoint
are consistent interface now.
-
-
client::async_recv() CompletionHandler signature is updated to
void(error_code, packet_variant)
. #281.-
packet_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 respect to Boost.Asio way. #266, #270, 271, #272, #273, #299
-
All async functions has the Completion Handler signature as
void(async_mqtt::error_code, …)
, exceptvoid()
.-
It works well with other Boost.Asio based libraries, and Boost.Asio itself.
-
-
-
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 exist topic alias treatment. #289
-
Fixed connack packet sending condition on error. #288
-
Fixed async_recv after cancel behave invalidly bug. #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
-
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 allication that is used for system testing.
-
-
Re-organized directory strucure respect to boost libraries. #211, #229, #230, #234
-
It affects the users only if include the specific header file directly.
-
-
Re-desined 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 infterface for adcanced user. #195, #262
-
For example, create PUBLISH packet using "topic1", and get the filed 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
-
-
Removed all boost::asio::bind_executor() from the library code. #247, #250, #256, #257
-
client supported flexible parameters. #241, #244
-
You can pass not only packet instence 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, #255
-
TCP, TLS, Websocket, Websocket on TLS are handshaked by one function call.
-
-
Refined documents. #220, #222, #232, #233, #234, #235, #243, #252, #253, #258, #262
-
Refined examples. #214, #220, #250, #258, #259, #260, #261
-
Added client’s infinity timer cancelling without data arrival support. #185
-
Modified client::get_executor() return value.#184
-
Removed core sub directory and move file to upper directory. #158
-
Added null strand support. #153, #160, #161
-
Note: If you are’t using
basic_endpoint
directly, using onlyendpoint
, no actions are required.
-
-
Added bulk packet writing functionality. #169, #170
-
Fixed unused variable in release build. #167
-
Refined web socket async_read using Boost.Asio’s free function. #165
-
Refined documents. #162, 173, #174, #175, #176
-
Removed redundant locks from internal queue. #157
-
Added tests. #154, #156
-
Refined CI. #155, #166
-
Re-designed unique_scope_guard. #146, #148, #149
-
Fixed moved from object access. #144
-
Removed code repeat. #140
-
Added acquire_unique_packet_id_wait_until(). #138, #139, #141, #142, #151
-
Relaxed epsp_wrap constructor for broker. #137
-
Supported no matching subscribers reason code for broker. #133
-
Added all.hpp generator. #131
-
Refined client_cli. #130
-
Added print payload option. #129
-
Added keep_alive settiong to bench. #125
-
Fixed num_of_const_buffer_sequence. #120, #121
-
Refined tests. #120, #122, #123, #127, #128, #132, #134, #136, #145
-
Refined packet comparison. #119
-
Replaced return type with auto. #110
-
Added UTF-8 checking. #107
-
Replaced callback with CompletionToken on broker. #106
-
Refined C++20 couroutune example. #105
-
Used any_io_executor as the base of predefined mqtt protocol. #104
-
Refined documentation. #103
-
Fixed inconsistent function names. #84, #89
-
get_stored() ⇒ get_stored_packets()
-
set_ping_resp_recv_timeout_ms() ⇒ set_pingresp_recv_timeout_ms()
-
-
Made endpoint non movable. #79.
-
It is designed non copyable and non movable but the code was able to movable invalidly, so this is a bug fix. However some of test, broker, and bench code had been used move constructor. Hence I categolize the fix to breaking changes.
-
-
Added to_buffer function for std::vector<buffer>. #77
-
Refined CI. #75
-
Fixed invalid sendable packet checking. #74
-
Added fixed CPU core map by ioc for broker. #69, #70
-
Fixed endpoint’s internal queue operation. #66
-
Refined documents. #62
-
Refined examples. #61
-
Refined bench. #60, #63, #64, #65
-
Removed zlib dependency. #51
-
Refined topic alias. #48
-
Refined broker’s CA certificate checking. #45, #46
-
Fixed recv() with filter compile error. #44
-
Fixed deliver authorization for broker. #30
-
Refined client_cli. #29
-
Fixed creating packets from buffer process. #28
-
Fixed installed cmake configuration. #23
-
Fixed offline client inheritance on broker. #22
-
Fixed PUBREL(v5) reason_code on broker. #21
-
Moved SHA256 from OpenSSL to picosha2. #19
-
Refined tests. #19, #20
-
Fixed broker’s PUBREL rc. #12
-
Removed redundant codes. #15
-
Added CLI MQTT client. #12
-
Added docker support. #11, #13, #14