grpc 1.12.0 has been released. Remote Procedure Calls (RPCs) provide a useful abstraction for building distributed applications and services. The libraries in this repository provide a concrete implementation of the gRPC protocol, layered over HTTP/2. These libraries enable communication between clients and servers using any combination of the supported languages.
By default, it uses Protocol Buffers as the Interface Definition Language (IDL) for describing both the service interface and the structure of the payload messages. It is possible to use other alternatives if desired.
Starting from an interface definition in a .proto file, gRPC provides Protocol Compiler plugins that generate Client- and Server-side APIs. gRPC users typically fall into these APIs on the Client side and implement the corresponding API on the server side.
Synchronous vs. asynchronous
Synchronous RPC calls, that block until a response arrives from the server, are the closest approximation to the abstraction of a procedure call that RPC aspires to.
On the other hand, networks are inherently asynchronous and in many scenarios, it is desirable to have the ability to start RPCs without blocking the current thread.
The gRPC programming surface in most languages comes in both synchronous and asynchronous flavors.
protobufsubmodule to 3.5.2 (#15114)
- Compile Out Tracers Option (#15108)
- Fix bug in an address sorting comparison (#15208)
- Fix: Check retry timer before starting resolving (#15156)
- Fix c-ares resolution with default authority (#15073)
- Fix c-ares resolver crash when DNS server unreachable (#15134)
- Performance: Avoid low severity log message construction (#14945)
- Peformance: Enable
SIO_LOOPBACK_FAST_PATHon Windows (#14905)