Skip to content

2.8

Compare
Choose a tag to compare
@apolukhin apolukhin released this 12 Mar 07:47

Changes since v2.7:

  • sharding_strategy of 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-enabled static 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_ENABLED is not used any more.

  • server::handlers::HttpHandlerStatic now has an expires static 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::formatter for enums in chaotic.

  • kRoundRobin load 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 moodycamel queue instead of boost::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::string constants were replaced with constinit types, leading to faster startup times and smaller binaries.
    • Avoid URL copies in clients::http::Request
  • Documentation and Diagnostics:

  • Build

    • Debug symbols of userver libraries are now compressed with zstd if the toolset supports it, leading to smaller binaries size.
    • Docker images now use zstd compression 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!