@@ -37,6 +37,97 @@ Changelog news also go to the
3737
3838## Changelog
3939
40+ ### Release v2.16
41+
42+ * ** Support of C++17 is deprecated and will be removed in one on the next releases** . C++20 is the default for
43+ userver for quite some time. Use C++20 or even a more modern C++.
44+ * New readiness notification flow for tasks, futures, events and other awaitable objects. It provides a lightweight and
45+ efficient framework for more efficient implementation of waiting objects/methods like @ref engine::WaitAny,
46+ @ref engine::FdPoller, @ref engine::TaskBase::BlockingWait .
47+ * Ydb: @ref ydb::Transaction and @ref ydb::TableClient::ExecuteDataQuery switched from Table Client to Query Client API.
48+ * Multicast support for sockets. See @ref engine::io::IpMreq .
49+ Many thanks to [ Dmitry Borchuk] ( https://github.com/dmitryborchuk ) for the contribution!
50+ * SAX parsing in Chaotic codegen. See @ref scripts/docs/en/userver/chaotic.md .
51+ * HttpClient: New Websocket client. See @ref scripts/docs/en/userver/tutorial/websocket_client.md .
52+ * gRPC: Retry limiter. See @ref ugrpc::client::RetryLimiter .
53+ * Separate log for components loading that simplifies components loading issues debugging.
54+ See ` components_manager.boot-log-path ` in @ref components::ManagerControllerComponent .
55+ * Redis: Valkey and Redis dynamic client component. See @ref components::DynamicRedis .
56+ * @ref components::StatisticsStorage allows filtering of metrics by @ref utils::statistics::MetricTag .
57+ * Automatic conversions between structs and JSON in ` easy ` library. See @ref scripts/docs/en/userver/libraries/easy.md .
58+ * Resource scopes separated from the component system. See @ref utils::ResourceScopeStorage .
59+ * New @ref multi_index_lru::ExpirableContainer container. Many thanks to [ hzhdlrp] ( https://github.com/hzhdlrp )
60+ for the contribution!
61+ * Kafka: Added ` group_instance_id ` option to @ref kafka::ConsumerComponent .
62+ * gRPC: Perform retry on the next channel.
63+ * Ydb: New transaction modes support. See @ref ydb::TransactionMode .
64+ * Ydb: New AsContainer() method in cursor. See @ref ydb::Cursor::AsContainer .
65+ * Redis: New @ref storages::redis::Client::EvalReadOnly and @ref storages::redis::Client::EvalShaReadOnly functions.
66+ * Per-handler metrics in HTTP server. See ` SetHandlerMetricsShard ` in @ref server::request::RequestContext .
67+ * gRPC: Extended gRPC client completion statuses. See @ref ugrpc::client::SpecialCaseCompletionType .
68+ * ` operator== ` for proto structs.
69+ * Userver can listen on a socket passed via ` execve ` . See ` listen-socket-fd ` parameter description in
70+ @ref components::Server .
71+ * New ` contains_no_update ` method in @ref multi_index_lru::Container and benchmarks cleanup.
72+ Many thanks to [ hzhdlrp] ( https://github.com/hzhdlrp ) for the contribution!
73+ * New @ref net::blocking::ConnectTcpByName method to connect to a remote endpoint via a host name and a port.
74+ * Converters between proto structs and binary data. See @ref userver/proto-structs/convert.hpp .
75+ * Converters between proto structs and JSON. See @ref userver/proto-structs/json.hpp .
76+ * Converters between proto structs enums and strings.
77+ * @ref server::websocket::WebSocketConnection support for waiting primitives (like @ref engine::MakeWaitAny ).
78+ * Added @ref engine::io::Sockaddr::MakeIPSocketAddress, @ref engine::io::Sockaddr::MakeInaddrAny and
79+ @ref engine::io::Sockaddr::MakeIPv4InaddrAny functions.
80+ Many thanks to [ Dmitry Borchuk] ( https://github.com/dmitryborchuk ) for the contribution!
81+
82+ * Optimizations and fixes
83+ * New @ref engine::WaitAnyContext (@ref engine::MakeWaitAny ) and @ref engine::WaitAllChecked waiting primitives
84+ optimized for usage in loops.
85+ * Kafka: Reuse consumer after a user exception.
86+ * Redis: Optimized statistics storage - removed most of per-shard and per-instance statistics that are rarely used
87+ to save memory, CPU and network bandwidth.
88+ * Prevent an unnecessary copy inside the ` ServerImpl::WriteTotalHandlerStatistics ` function.
89+ Many thanks to [ gabrielyanabraham] ( https://github.com/gabrielyanabraham ) for the PR!
90+ * Optimized @ref engine::TaskBase::BlockingWait .
91+ * Kafka: Deprecated @ref engine::WaitAny replaced with @ref engine::MakeWaitAny .
92+ Many thanks to [ Dmitry Isaikin] ( https://github.com/disaykin ) for the PR!
93+ * Fixed @ref yaml_config::YamlConfig mode when accessing an array by index.
94+ Many thanks to [ Fedor Shatokhin] ( https://github.com/FedShat ) for the contribution!
95+ * Fixed compilation error with modern ` libfmt ` versions. Many thanks to
96+ [ Konstantin Goncharik] ( https://github.com/botanegg ) for the PR!
97+ * Fixed -flto=auto support for GCC. Many thanks to [ Konstantin Goncharik] ( https://github.com/botanegg )
98+ for the PR!
99+ * Fixed broken ` journal_mode ` and ` synchronous ` options definitions in @ref components::SQLite .
100+ Many thanks to [ Alexey Mednyy] ( https://github.com/swex ) for the PR!
101+ * Fixed a compile warning in @ref utils::PeriodicTask .
102+ Many thanks to [ Evgeny Proydakov] ( https://github.com/proydakov ) for the PR!
103+ * HttpClient: Fixed socket type equality check. Many thanks to [ Konstantin Goncharik] ( https://github.com/botanegg )
104+ for the PR!
105+ * Ydb: Fixed compilation error with modern ` libfmt ` versions.
106+ Many thanks to [ Vasily Sviridov] ( https://github.com/vasily-sviridov ) for the PR!
107+
108+ * Build and testing
109+ * Updated Google benchmark to 1.9.5. Many thanks to [ Konstantin Goncharik] ( https://github.com/botanegg ) for the PR!
110+ * Userver devcontainer. See @ref scripts/docs/en/userver/build/userver.md#devcontainers_userver .
111+ * New ` component_manager.coro_pool.unoptimized_stack_size_multiplier ` option to automatically increase stack size
112+ in unoptimized builds. See @ref components::ManagerControllerComponent .
113+ * gRPC: @ref @ref pytest_userver.grpc._ client.PreCallClientInterceptor accessible from testsuite.
114+ * New @ref utils::StartPeriodicTask method that allows deterministic testing of periodic tasks in testsuite.
115+ * Upgraded CPM.cmake to 0.42.1. Many thanks to [ Konstantin Goncharik] ( https://github.com/botanegg ) for the PR!
116+
117+ * Documentation
118+ * Better documentation and benchmark for LRU caches.
119+ * Markdown documentation for cmake files.
120+ * Postgres: Updated connections limit documentation. See @ref scripts/docs/en/userver/pg_connlimit_mode_auto.md .
121+ * Extra samples for metrics unit testing.
122+ * Updated @ref engine::SingleUseEvent and @ref engine::SingleConsumerEvent documentation.
123+ * gRPC: @ref ugrpc::RichStatus documentation. See @ref scripts/docs/en/userver/grpc/rich_status.md .
124+ * Added missing include to @ref README.md. Many thanks to [ Aleksey Belov] ( https://github.com/belov-aleksey ) for the PR!
125+ * Updated Gentoo build docs. Many thanks to [ halfdarkangel] ( https://github.com/halfdarkangel ) for the contribution!
126+ * Detailed description of Congestion Control logic. See @ref scripts/docs/en/userver/congestion_control.md .
127+ * Kafka: Added ` pool_timeout ` to kafka-consumer config in @ref samples/kafka_service/static_config.yaml .
128+ Many thanks to [ Konstantin Goncharik] ( https://github.com/botanegg ) for the PR!
129+
130+
40131### Release v2.15
41132
42133* ** Support of C++17 is deprecated and will be removed in one on the next releases** . C++20 is the default for
0 commit comments