Skip to content

v2.7.0

Compare
Choose a tag to compare
@Tradias Tradias released this 28 Oct 14:32
· 213 commits to master since this release

This release prepares asio-grpc for a large trim down in the next major release by adding an API that follows Asio's I/O object model more closely, avoids the pitfalls of the current API and provides more customization options.

The following headers should be considered deprecated:
bind_allocator.hpp, cancel_safe.hpp, default_completion_token.hpp, get_completion_queue.hpp, grpc_initiate.hpp, grpc_stream.hpp, notify_when_done.hpp, repeatedly_request_context.hpp, repeatedly_request.hpp, rpc.hpp, use_awaitable.hpp, wait.hpp

Features

  • Add agrpc::ServerRPC, new API for asynchronous servers.
  • Add agrpc::register_awaitable_rpc_handler, agrpc::register_yield_rpc_handler and agrpc::register_sender_rpc_handler functions for setting up request handling with agrpc::ServerRPC.
  • Breaking change in experimental agrpc::ClientRPC API:
    • Rename agrpc::ClientRPCGenericUnary to agrpc::GenericUnaryClientRPC.
    • Rename agrpc::ClientRPCGenericStreaming to agrpc::GenericStreamingClientRPC.
  • Make unary ClientRPCs constructible and add start, read_initial_metadata and finish member functions.

Fixes

  • Avoid UB from casting function pointer to void* in ClientRPC, BasicAlarm and notify_one_state_change asynchronous operations.
  • Consistently take CompletionToken by forwarding-reference.

Performance

  • Improve compile times of ClientRPC, BasicAlarm and notify_one_state_change asynchronous operations.

Documentation

  • Remove documentation of old API.

Chore

  • Run sonarscanner on Ubuntu 22.04 with GCC 11 and Java 17.
  • Use vcpkg binarycaching with Github Caches.