Changes since v2.4:
-
Added S3 API client s3api::Client. Many thanks to v-for-vandal for the work!
-
Added gRPC reflection library. Many thanks to v-for-vandal for the work!
-
Added Kill Switch functionality. Many thanks to Aksenov Anton for the work!
-
Congestion Control turned on by default.
-
Initial work towards embedding GDB pretty-printers to userver binaries.
-
Mongo now has the full functionality for diagnostics out-of-the box, without mongo-c library patches.
-
Simplified contributing by removing the annoying bot that checks for explicit agreement to CLA. Creating an issue or sending a PR already means agreement with CLA. Added notes to PR and Issue creation to highlight that.
-
Basic support for HTTP/2 body streaming.
-
Kafka support in testsuite implemented. See Functional tests section at Kafka service tutorial.
-
gRPC:
- Safe new interface for gRPC server handlers. Old interface will be removed in next release.
- Added support for TLS in gRPC.
- Added ugrpc::server::middlewares::field_mask::Component for masking and trimming messages. Many thanks to TTPO100AJIEX for the work!
- gRPC clients now allow configuring channels count for particular methods via
dedicated-channel-counts
static config option.
-
Optimizations:
- concurrent::MpscQueue was optimized, leading to x2-x3 better performance.
- rcu::Variable deleter now can be chosen at compile time, leading to smaller size of rcu::Variable if no asynchronous deletion required.
- Multiple optimizations for gRPC logging and message visitations via ugrpc::VisitFieldsRecursive(). Many thanks to TTPO100AJIEX for the work!
-
Build:
- Added
userver_module()
CMake function to simplify configuration of new drivers that are being added to userver. - Added missing
fmt/ranges.h
includes. Thanks to Vasilii Kuziakin and to SidorovichPavel for the PRs! - Proper use of
PROTOBUF_PROTOC
in CMake. Thanks to Nikita for the PR! - Added support for builds in paths that contain whitespaces and other special symbols.
- Added CI build tests for Ubuntu 24.04 and MacOS.
- Switched to Conan v2. Many thanks to Anton for the PR! Also use modern versions of third party libraries in Conan.
- Added
-
Documentation and diagnostics:
- A whole new build dedicated section was added to the docs instead of the old "Configure, Build and Install" page.
- Improved schemes validation messages, including config validation messages because no schema is written.
- Disambiguated diagnostic messages for component system.
- Better log messages for the dist locks.
- Better docs for gRPC middlewares and gRPC logs at gRPC.
- Added topology and heartbeats logs and metrics for Mongo.
- Clarified docs on PostgreSQL data types with timezones. See uPg: Supported data types.
- Added Kafka service tutorial.
- Logging at runtime, Congestion Control documentation rewrite.