v2.0.0
Breaking change: All headers now use snake_case instead of camelCase, e.g. #include <agrpc/asioGrpc.hpp>
becomes #include <agrpc/asio_grpc.hpp>
.
Breaking change: Two overloads for requesting unary RPCs have been removed, example: co_await agrpc::request(&example::v1::Example::Stub::AsyncUnary, stub, client_context, request)
. Please use other means of obtaining a reference to the agrpc::GrpcContext
and then call agrpc::request(&example::v1::Example::Stub::AsyncUnary, stub, client_context, request, grpc_context)
.
Breaking change: Unsafe overloads of agrpc::get_completion_queue
have been removed.
Breaking change: asio-grpcConfig.cmake will now autolink with gRPC::grpc++_unsecure
instead of gRPC::grpc++
. If you are using encrypted gRPC then you need to explicitly link with gRPC::grpc++
in your CMake files.
Breaking change: If the completion handler passed to an asynchronous operation does not have an associated allocator then asio-grpc will no longer attempt to retrieve one from the associated executor through asio::query(executor, asio::execution::allocator)
. This behavior had been deprecated in v1.6.0.
Features
- Add
run_until(deadline)
toagrpc::GrpcContext
. - Add
PrepareAsync
overloads for requesting RPCs in a thread-safe manner. - Deprecate the
Async
overloads for requesting client-side streaming RPCs as they can lead to race-conditions. - Add
agrpc::BasicGrpcStream
overload toagrpc::get_completion_queue
. - Make
agrpc::AllocatorBinder
fully constexpr compatible.
Style
- No longer use
std::aligned_storage
since it is deprecated in C++23. - Continue to implement compile time improvements.
Documentation
- Add examples for multi-threaded clients and servers.
- Make the
ServerShutdown
that is used in examples thread-safe.
Chore
- Asio-grpc is now available on conan-center!
- Use CTest's
--build-and-test
command for the asio-grpc-cmake test. Also use an older version of CMake (3.16) for that test. - Remove GCC 9 and Clang 11 pipelines.
- Update doctest, gRPC, gtest, libunifex and liburing in the pipelines.