2.8
Changes since v2.7:
-
sharding_strategyof the components::Redis now supports RedisStandalone configuration, that may be useful for tests or unimportant caches. Many thanks to Aleksey Ignatiev for the PR! -
kafka::Producer now has the API for sending Kafka headers. Many thanks to Mikhail Romaneev for the PR and to Fedor Lobanov for the fix!
-
kafka::ConsumerScope now has the API for receiving Kafka headers.
-
Add span events to OpenTelemetry via tracing::Span::AddEvent(). Many thanks to Dudnik Pavel for the PR.
-
Added logging::JsonString to explicitly describe in type system that a string contains loggable JSON. Many thanks to akhoroshev for the PR!
-
Deadline Propagation for PostgreSQL is now enabled by default and can be controlled via
deadline-propagation-enabledstatic option of the components::Postgres. -
Testsuite now supports @pytest.mark.uservice_oneshot.
-
utils::regex now always uses a faster and safer Re2 instead of boost::regex.
-
Dynamic config
USERVER_HANDLER_STREAM_API_ENABLEDis not used any more. -
server::handlers::HttpHandlerStatic now has an
expiresstatic config option. -
kafka::ProducerComponent and kafka::ConsumerComponent now supprt 'SASL_PLAINTEXT' security protocol. Many thanks to Mikhail Romaneev for the PR!
-
Implemented OneOf discriminator mapping to integer and generation of
fmt::formatterfor enums in chaotic. -
kRoundRobinload distribution in PostgreSQL is now uniform -
gRPC
- Retries are now supported and controlled via dynamic config. See ugrpc::client::Qos for more info.
- Clients and servers now use the same configuration approach for middlewares, allowing granular overrides of settings.
-
Optimizations
- Postgres driver now uses
moodycamelqueue instead ofboost::lockfree. Up to 2 times faster retrieval of connection from pool. - utils::TrivialBiMap is used in more cases, leading to faster runtime search and minor decrease in binaries size.
- Multiple
std::stringconstants were replaced withconstinittypes, leading to faster startup times and smaller binaries. - Avoid URL copies in clients::http::Request
- Postgres driver now uses
-
Documentation and Diagnostics:
- Fixed typo at Build dependencies. Many thanks to Konstantin Goncharik for the PR.
- More docs on External SQL/YQL files
- Improved parse failure messages for Dynamic config
- Improved diagnostics for corrupted tracing::Span
- Erroneous attempt to log function address is now captured at build time.
-
Build
- Debug symbols of userver libraries are now compressed with
zstdif the toolset supports it, leading to smaller binaries size. - Docker images now use
zstdcompression too. - Dropped CI testing on Ubuntu 20.04 which lifetime almost ended.
- Improved build type matching for installed userver. Many thanks to Aleksey Ignatiev for the PR!
- Debug symbols of userver libraries are now compressed with