Skip to content

v1.7.0

Compare
Choose a tag to compare
@Tradias Tradias released this 06 Jun 14:49
· 570 commits to master since this release

Features

  • Add overloads to agrpc::request and agrpc::repeatedly_request for generic RPCs.
  • Add overload to agrpc::request for starting a client-side unary request. The last argument to this function is a agrpc::GrpcContext instead of a CompletionToken because the function completes immediately.
  • Add overloads to RPC functions for -Interface versions of stub/service/reader/writer/reader_writer/response_writer.
  • Add agrpc::GrpcContext.run_completion_queue()/poll_completion_queue() which only process events from the grpc::CompletionQueue. They can be used as a better performing alternative to run()/poll() where the GrpcContext is not used as an Asio execution context.
  • RPC functions now automatically unwrap std::unique_ptr. (Except stubs which will be addressed in the next release)
  • Stabilize API of agrpc::CancelSafe. Compared to the previous release it now takes a completion signature as template argument, example: Change agrpc::CancelSafe<bool> to agrpc::CancelSafe<void(bool)>
  • (experimental) Add agrpc::GrpcStream, an IoObject-like class for handling RPCs in a cancellation safe manner. See the new handle_topic_subscription example on how it can be used to write Golang/Rust select-style code.
  • (experimental) Replace agrpc::PollContext with a more optimized free function agrpc::run that can be used to run an asio::io_context and agrpc::GrpcContext in the same thread.
  • (experimental) Add utility function to manually process gRPC tags, useful for writing mocked stubs.

Style

  • Use C++20 concepts when available to potentially improve compile times.
  • Implement several small compile time improvements.

Documentation

  • Move doxygen documentation to the gh-pages branch.

Chore

  • Add pipeline for gRPC 1.16.1.
  • Use CMake version 3.16.3 for the CMake install test.
  • Add CMake option to fallback to pkg-config when a dependency cannot be found. This option is for maintainers.
  • Add GTest to vcpkg dependencies.