5.8 KiB
Changelog
master
-
Removes
coalesce_requestsfrom theconnection::config, this became a request property now, seerequest::config::coalesce. -
Removes
max_read_sizefrom theconnection::config. The maximum read size can be specified now as a parameter of theaedis::adapt()function. -
Removes
aedis::syncclass, see intro_sync.cpp for how to perform synchronous and thread safe calls. This is possible in Boost. 1.80 only as it requiresboost::asio::deferred. -
Moves from
boost::optionaltostd::optional. This is part of moving to C++17. -
Changes the behaviour of the second
connection::async_runoverload so that it always return an error when the connection is lost. -
Adds TLS support, see intro_tls.cpp for how to use it.
-
Adds an example that shows how to resolve addresses over sentinels, see subscriber_sentinel.cpp.
-
Adds a
connection::config::resp3_handshake_timeout. This is timeout used to send theHELLOcommand. -
Adds
endpointwhere in addition to host and port, users can optionally provide username, password and the expected server role (seeerror::unexpected_server_role). -
connection::async_runchecks whether the server role received in the hello command is equal to the expected server role specified inaedis::endpoint. To skip this check let the role variable empty. -
Removes reconnect functionanlity from
aedis::connection. It is possible in simple reconnection strategies but bloats the class in more complex scenarios, for example, with sentinel, authentication and TLS. This is trivial to implement in a separate coroutine. As a result the enumeventandasync_receive_eventhave been removed from the class too. -
Fixes a bug in
connection::async_receive_pushthat prevented passing any response adapter other thatadapt(std::vector<node>). -
Changes the behaviour of
aedis::adapt()that caused RESP3 errors to be ignored. One consequence of it is thatconnection::async_runwould not exit with failure in servers that required authentication. -
Changes the behaviour of
connection::async_runthat would cause it to complete with success when an error in theconnection::async_execoccurred. -
Ports the buildsystem from autotools to CMake.
v1.0.0
-
Adds experimental cmake support for windows users.
-
Adds new class
aedis::syncthat wraps anaedis::connectionin a thread-safe and synchronous API. All free functions from thesync.hppare now member functions ofaedis::sync. -
Split
aedis::connection::async_receive_eventin two functions, one to receive events and another for server side pushes, seeaedis::connection::async_receive_push. -
Removes collision between
aedis::adapter::adaptandaedis::adapt. -
Adds
connection::operationenum to replacecancel_*member functions with a single cancel function that gets the operations that should be cancelled as argument. -
Bugfix: a bug on reconnect from a state where the
connectionobject had unsent commands. It could causeasync_execto never complete under certain conditions. -
Bugfix: Documentation of
adapt()functions were missing from Doxygen.
v0.3.0
-
Adds
experimental::execandreceive_eventfunctions to offer a thread safe and synchronous way of executing requests across threads. Seeintro_sync.cppandsubscriber_sync.cppfor examples. -
connection::async_read_pushwas renamed toasync_receive_event. -
connection::async_receive_eventis now being used to communicate internal events to the user, such as resolve, connect, push etc. For examples see subscriber.cpp andconnection::event. -
The
aedisdirectory has been moved toincludeto look more similar to Boost libraries. Users should now replace-I/aedis-pathwith-I/aedis-path/includein the compiler flags. -
The
AUTHandHELLOcommands are now sent automatically. This change was necessary to implement reconnection. The username and password used inAUTHshould be provided by the user onconnection::config. -
Adds support for reconnection. See
connection::enable_reconnect. -
Fixes a bug in the
connection::async_run(host, port)overload that was causing crashes on reconnection. -
Fixes the executor usage in the connection class. Before theses changes it was imposing
any_io_executoron users. -
connection::async_receiver_eventis not cancelled anymore whenconnection::async_runexits. This change makes user code simpler. -
connection::async_execwith host and port overload has been removed. Use the otherconnection::async_runoverload. -
The host and port parameters from
connection::async_runhave been move toconnection::configto better support authentication and failover. -
Many simplifications in the
chat_roomexample. -
Fixes build in clang the compilers and makes some improvements in the documentation.
v0.2.1
- Fixes a bug that happens on very high load.
v0.2.0
- Major rewrite of the high-level API. There is no more need to use the low-level API anymore.
- No more callbacks: Sending requests follows the ASIO asynchronous model.
- Support for reconnection: Pending requests are not canceled when a connection is lost and are re-sent when a new one is established.
- The library is not sending HELLO-3 on user behalf anymore. This is important to support AUTH properly.
v0.1.2
- Adds reconnect coroutine in the
echo_serverexample. - Corrects
client::async_wait_for_datawithmake_parallel_groupto launch operation. - Improvements in the documentation.
- Avoids dynamic memory allocation in the client class after reconnection.
v0.1.1
- Improves the documentation and adds some features to the high-level client.
v0.1.0
- Improvements in the design and documentation.
v0.0.1
- First release to collect design feedback.