{"repo":"Tradias/asio-grpc","free":true,"listed":false,"github":"https://github.com/Tradias/asio-grpc","clone":"git clone https://github.com/Tradias/asio-grpc.git","description":"Asynchronous gRPC with Asio/unified executors","language":"C++","stars":471,"topics":["cpp","grpc","asio","executors","asynchronous","coroutine","cpp17","cpp20","asynchronous-programming","sender-reciever"],"license":"Apache-2.0","category":"networking-infra","readme_excerpt":"asio-grpc An Executor, Networking TS and std::execution interface to grpc::CompletionQueue for writing asynchronous gRPC clients and servers using C++20 coroutines, Boost.Coroutines, Asio's stackless coroutines, callbacks, sender/receiver and more. Features Asio ExecutionContext compatible wrapper around grpc::CompletionQueue Support for all RPC types: unary, client-streaming, server-streaming and bidirectional-streaming with any mix of Asio CompletionToken as well as Sender, including allocator customization Support for asynchronously waiting for grpc::Alarms including cancellation through cancellation slots and StopTokens Support for sender/receiver through either libunifex or stdexec Support for generic gRPC clients and servers No extra codegen required, works with the vanilla gRPC C++ plugin ( grpc cpp plugin ) No-Boost version with standalone Asio No-Asio version with libunifex or stdexec CMake function to easily generate gRPC source files: asio grpc protobuf generate Example Hello world client using C++20 coroutines. Other Asio completion tokens are supported as well. snippet source anchor Requirements Asio-grpc is a C++17, header-only library. To install it, CMake (3.14+) is all that is needed. To use it, gRPC and either Boost.Asio (min. 1.74.0), standalone Asio (min. 1.17.0), libunifex or stdexec must be present and linked into your application. Officially supported compilers are GCC 10+, Clang 13+, AppleClang 15+ and latest MSVC. Usage The library can be added to a C","default_branch":null,"files":null,"tree":[],"storefront":"/r/Tradias","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/Tradias/asio-grpc/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}