Changes since v2.6:
-
Logging in JSON format was implemented. See static option
format
at components::Logging. -
utils::regex now uses
Re2
under the hood, leading to at least x2 faster regular expression matching and guaranteed absence of backtracking. Updating is highly recommended. -
Mongo connection state checking algorithms was adjusted to work well on small RPS.
-
Conan packages now support all the userver features. Conan package build now reuses the CMake install targets and CMake config files.
-
Full feature support for MacOS, including testing and Conan package build and usage on that platform.
-
Added support for TLS certificate chains. See
tls.cert
static option at components::Server. Many thanks to aklyuchev for the PR! -
Chaotic exceptions now do not depend on JSON. Thanks to Artyom for the PR!
-
gRPC
- Out-the-box cache dump support for Protobuf messages. See Implementing serialization (Write / Read) for more info.
- Removed deprecated
*Sync
methods.
-
Optimizations
- Speed up configuration reads on creating new PostgreSQL connections.
- utils::PeriodicTask now calls RCU Read two times less on each iteration.
- Reduced memory allocations count on each Redis request.
-
Build
- New Mongo+gRPC service template. Many thanks to Alexander Kuvaev for the PR!
- Fixed build with
USERVER_FEATURE_JEMALLOC=ON
. Many thanks to Aleksey Ignatiev
for the PR! - Service templates service_template, pg_service_template, pg_grpc_service_template, mongo_grpc_service_template now use "cmake presets" and "devcontainers" for out-of-the-box support of VSCode and Clion IDEs.
- Started the work on Ubuntu 24.04 images.
- Added
ubuntu-22.04-userver-pg-dev
image with all the tools for development. Planning to switch to Ubuntu-24.04 and leave only 2 containers: with build dependencies to build userver, and with prebuild userver. - Added missing fmt11 headers. Thanks to Pavel Sidorovich for the PR!
- Added
USERVER_USE_STATIC_LIBS
to link third-party libraries statically. - Support
pacman
epoch in CMake version detection. Many thanks to Konstantin Goncharik for the PR.
-
Documentation
- Significant update of the Configure, Build and Install
- More docs for tracing::Span::SetLogLevel() and tracing::Span::SetLocalLogLevel()
- Fixed secdist example at components::Mongo. Thank to Nikita Puteev for the PR!
- Highlight the functionality of formats::common::Items in each supported format.
- Add info about full static linkage. Thanks to Nikita for the PR!
- Better
runtests
documentation at Functional service tests (testsuite) - Documentation and samples for storages::postgres::io::Codegen{}.