|
7 | 7 |
|
8 | 8 | = Changelog |
9 | 9 |
|
| 10 | +== Boost 1.90 |
| 11 | + |
| 12 | + |
| 13 | +* (Pull request https://github.com/boostorg/redis/pull/310[310]) |
| 14 | + Improves the per-operation support in `async_exec()`. Requests can now |
| 15 | + be cancelled at any point, and cancellations don't interfere with other |
| 16 | + requests anyhow. In previous versions, a cancellation could cause |
| 17 | + `async_run()` to be cancelled, making cancellations unpredictable. |
| 18 | +* (Issue https://github.com/boostorg/redis/issues/226[226]) |
| 19 | + Added support for the `asio::cancel_after` and `asio::cancel_at` |
| 20 | + completion tokens in `async_exec()` and `async_run()`. |
| 21 | +* (Issue https://github.com/boostorg/redis/issues/319[319]) |
| 22 | + Added support for per-operation cancellation in `async_run()`. |
| 23 | +* (Pull request https://github.com/boostorg/redis/pull/329[329] |
| 24 | + and https://github.com/boostorg/redis/pull/334[334]) |
| 25 | + The `cancel_on_connection_lost` and `cancel_if_not_connected` |
| 26 | + flags in `request::config` have been deprecated, and will be removed |
| 27 | + in subsequent releases. To limit the time span that `async_exec` |
| 28 | + might take, use `asio::cancel_after`, instead. |
| 29 | + `cancel_on_connection_lost` default has been changed to `false`. |
| 30 | + This shouldn't cause much impact, since `cancel_on_connection_lost` |
| 31 | + is not a reliable way to limit the time span that `async_exec` might take. |
| 32 | +* (Pull request https://github.com/boostorg/redis/pull/321[321]) |
| 33 | + Calling `cancel` with `operation::resolve`, `operation::connect`, |
| 34 | + `operation::ssl_handshake`, `operation::reconnection` and |
| 35 | + `operation::health_check` is now deprecated. |
| 36 | + These enumerators will be removed in subsequent releases. |
| 37 | + Users should employ `cancel(operation::run)`, instead. |
| 38 | +* (Issue github.com/boostorg/redis/issues/302[302] and |
| 39 | + pull request https://github.com/boostorg/redis/pull/303[303]) |
| 40 | + Added support for custom setup requests using `config::setup` |
| 41 | + and `config::use_setup`. When setting these fields, users can |
| 42 | + replace the library-generated `HELLO` request by any other arbitrary request. |
| 43 | + This request is executed every time a new physical connection with the server |
| 44 | + is established. This feature can be used to interact with systems that don't |
| 45 | + support `HELLO`, to handle authentication and to connect to replicas. |
| 46 | +* (Pull request https://github.com/boostorg/redis/pull/305[305]) |
| 47 | + `request::config::hello_with_priority` and `request::has_hello_priority()` have |
| 48 | + been deprecated and will be removed in subsequent releases. |
| 49 | + This flag is not well specified and should only be used by the library. |
| 50 | + If you need to execute a request before any other, use `config::setup`, instead. |
| 51 | +* (Issue https://github.com/boostorg/redis/issues/296[296]) |
| 52 | + Valkey long-term support: we guarantee Valkey compatibility |
| 53 | + starting with this release. Previous releases may also work, |
| 54 | + but have not been tested with this database system. |
| 55 | +* (Issue https://github.com/boostorg/redis/issues/341[341]) |
| 56 | + Adds a `request::append()` function, to concatenate request objects. |
| 57 | +* (Issue https://github.com/boostorg/redis/issues/104[104]) |
| 58 | + The health checker algorithm has been redesigned to avoid |
| 59 | + false positives under heavy loads. `PING` commands are now |
| 60 | + only issued when the connection is idle, instead of periodically. |
| 61 | +* (Pull request https://github.com/boostorg/redis/pull/283[283]) |
| 62 | + Added `config::read_buffer_append_size`, which allows to control |
| 63 | + the expansion of the connection's read buffer. |
| 64 | +* (Pull request https://github.com/boostorg/redis/pull/311[311]) |
| 65 | + Added `usage::bytes_rotated`, which measures data copying when |
| 66 | + reading and parsing data from the server. |
| 67 | +* (Issue https://github.com/boostorg/redis/issues/298[298]) |
| 68 | + Added support for authenticating users with an empty password |
| 69 | + but a non-default username. |
| 70 | +* (Issue https://github.com/boostorg/redis/issues/318[318]) |
| 71 | + Fixed a number of race conditions in the `cancel()` function |
| 72 | + of `connection` and `basic_connection` that could cause |
| 73 | + cancellations to be ignored. |
| 74 | +* (Issue https://github.com/boostorg/redis/issues/290[290]) |
| 75 | + Fixed a problem that could cause an error during `HELLO` |
| 76 | + to make subsequent `HELLO` attempts during reconnection to fail. |
| 77 | +* (Issue https://github.com/boostorg/redis/issues/297[297]) |
| 78 | + Errors during `HELLO` are now correctly logged. |
| 79 | +* (Issue https://github.com/boostorg/redis/issues/287[287]) |
| 80 | + Fixed a bug causing an exception to be thrown when parsing |
| 81 | + a response that contains an intermediate error into a `generic_response`. |
| 82 | + |
| 83 | + |
| 84 | +== Boost 1.89 |
| 85 | + |
| 86 | +* (Pull request https://github.com/boostorg/redis/pull/256[256], |
| 87 | + https://github.com/boostorg/redis/pull/266[266] and |
| 88 | + https://github.com/boostorg/redis/pull/273[273]) |
| 89 | + The following members in `connection` and `basic_connection` are now deprecated |
| 90 | + and will be removed in subsequent releases: |
| 91 | + * `next_layer()` and `next_layer_type`: there is no reason to access the underlying stream object directly. |
| 92 | + Connection member functions should be used, instead. |
| 93 | + * `get_ssl_context()`: SSL contexts should never be modified after an `asio::ssl::stream` |
| 94 | + object has been created from them. Properties should be set before passing the context |
| 95 | + to the constructor. There is no reason to access the SSL context after that. |
| 96 | + * `reset_stream()`: connection internals have been refactored to reset the SSL stream |
| 97 | + automatically when required. This function is now a no-op. |
| 98 | + * The `async_run()` overload taking no parameters: use the `async_run` |
| 99 | + overload taking a `config` object explicitly, instead. |
| 100 | +* (Issue https://github.com/boostorg/redis/issues/213[213]) |
| 101 | + The logging interface has been re-written: |
| 102 | + * Logging can now be customized by passing a function object |
| 103 | + to the `logger` constructor. This allows integration with |
| 104 | + third-party logging libraries, like spdlog. |
| 105 | + This new logging interface is public and will be maintained long-term. |
| 106 | + * The old, unstable interface consisting of `logger::on_xxx` functions has been removed. |
| 107 | + * `connection` and `basic_connection` constructors now accept a `logger` object. |
| 108 | + This is now the preferred way to configure logging. |
| 109 | + The `async_run()` overload taking a `logger` object is now deprecated, and will |
| 110 | + be removed in subsequent releases. |
| 111 | + * `config::log_prefix` is now deprecated, and will |
| 112 | + be removed in subsequent releases. Users can achieve the same effect |
| 113 | + by passing a custom logging function to the `logger` constructor. |
| 114 | + * The default logging function, which prints to `stderr`, |
| 115 | + is now based on `printf` and is thus thread-safe. |
| 116 | + The old function used `std::cerr` and could result to interleaved |
| 117 | + output in multi-threaded programs. |
| 118 | + * The default log level is now `logger::level::info`, |
| 119 | + down from `logger::level::debug`. This results in less verbose output by default. |
| 120 | +* (Issue https://github.com/boostorg/redis/issues/272[272]) |
| 121 | + Added support for connecting to Redis using UNIX domain sockets. |
| 122 | + This feature can be accessed using `config::unix_socket`. |
| 123 | +* (Issue https://github.com/boostorg/redis/issues/255[255]) |
| 124 | + Fixed an issue that caused `async_run` to complete when a connection |
| 125 | + establishment error is encountered, even if `config::reconnect_wait_interval` |
| 126 | + specified reconnection. |
| 127 | +* (Issue https://github.com/boostorg/redis/issues/265[265]) |
| 128 | + `connection::async_exec` now uses `ignore` as the default response, |
| 129 | + rather than having no default response. This matches |
| 130 | + `basic_connection::async_exec` behavior. |
| 131 | +* (Issue https://github.com/boostorg/redis/issues/260[260]) |
| 132 | + Fixed a memory corruption affecting the logger's prefix |
| 133 | + configured in `config::log_prefix`. |
| 134 | +* (Pull request https://github.com/boostorg/redis/pull/254[254]) |
| 135 | + Fixed some warnings regarding unused variables, name shadowing |
| 136 | + and narrowing conversions. |
| 137 | +* (Issue https://github.com/boostorg/redis/issues/252[252]) |
| 138 | + Fixed a bug that causes reconnection to ignore the reconnection |
| 139 | + wait time configured in `config::reconnect_wait_interval`. |
| 140 | +* (Issue https://github.com/boostorg/redis/issues/238[238]) |
| 141 | + Fixed a bug introduced in Boost 1.88 that caused `response<T>` to |
| 142 | + not compile for some integral types. |
| 143 | +* (Issue https://github.com/boostorg/redis/issues/247[247]) |
| 144 | + The documentation has been modernized, and a more complete |
| 145 | + reference section has been added. |
| 146 | +* Part of the internals have been refactored to allow for better |
| 147 | + testing and reduce compile times. |
| 148 | + |
| 149 | + |
10 | 150 | == Boost 1.88 |
11 | 151 |
|
12 | 152 | * (Issue https://github.com/boostorg/redis/issues/233[233]) |
|
0 commit comments