Definition of gRPC
RPC is a modern, high-performance framework that evolves the age-old remote procedure call (RPC)
protocol. At the application level, gRPC streamlines messaging between clients and back-end services.
Originating from Google, gRPC is open source and part of the Cloud Native Computing Foundation
(CNCF) ecosystem of cloud-native offerings. CNCF considers gRPC an incubating project. Incubating
means end users are using the technology in production applications, and the project has a healthy
number of contributors.
In gRPC, a client application can directly call a method on a server application on a different machine as if it were a local object, making it easier for you to create distributed applications and services. As in many RPC systems, gRPC is based around the idea of defining a service, specifying the methods that can be called remotely with their parameters and return types. On the server side, the server implements this interface and runs a gRPC server to handle client calls. On the client side, the client has a stub (referred to as just a client in some languages) that provides the same methods as the server.
gRPC clients and servers can run and talk to each other in a variety of environments – from servers inside Google to your own desktop – and can be written in any of gRPC’s supported languages. So, for example, you can easily create a gRPC server in Java with clients in Go, Python, or Ruby. In addition, the latest Google APIs will have gRPC versions of their interfaces, letting you easily build Google functionality into your applications