Skip to content

v1.4.0

Compare
Choose a tag to compare
@Tradias Tradias released this 25 Feb 14:16
· 882 commits to master since this release

Features

  • Upcoming breaking change: agrpc::use_scheduler has been renamed to agrpc::use_sender. The old version will be removed in v1.5.0.
  • Stabilize agrpc::repeatedly_request's API. It now supports CancellationSlot/StopToken, asio::awaitable, Sender and a final CompletionToken. Also reduced the memory needed per request. See documentation and examples for more details.
  • Add agrpc::write_last which coalesces write and finish for server-side streaming RPCs and combines write and writes_done for client-side streaming RPCs.
  • Add StopToken support to agrpc::wait.
  • asio_grpc_protobuf_generate can now handle .proto files that are nested within the import directory.
  • Turn get_completion_queue into a function object.
  • Split public header files. They may now be included individually instead of only through the asioGrpc.hpp file.

Fixes

  • agrpc::wait was incorrectly using the cancellation slot of the CompletionToken instead of the CompletionHandler, leading to broken cancellation propagation.

Performance

  • Enable likely/unlikely attribute equivalents for C++17.

Style

  • Issue a static assertion when asio-grpc is used without passing it to a target_link_libraries call in CMake which can lead to hard to decipher errors: #12.
  • Move .ipp headers out of the public include directory.
  • Mark RPC functions noexcept when agrpc::use_sender is the CompletionToken.

Documentation

  • Complete API reference documentation is now available online and in code!
  • Provide an example on how to cancel individual RPC steps based on a deadline.
  • Provide documentation on how to use callbacks and stackless coroutines.
  • Fix compilation of the unifex server-streaming documentation snippets.
  • Mention that calls to find_package are needed in the As a subdirectory section of the README.
  • Update the Using vcpkg section of the README to reflect the automatic interface link library setup performed by asio-grpcConfig,cmake.

Chore

  • Avoid duplicate compilation of generated protobuf files in tests.
  • Use libc++ for Ubuntu Clang builds.
  • Enable coroutines and unifex for Clang builds.
  • Use minimum supported standalone Asio version for CI and during development.
  • Use asio separate compilation in tests.
  • Update unifex to December release.