GRPC

What is GRPC

  • It's a modern, open-source, high-performant Remote Procedure Call* (RPC) framework.
  • It uses Protobuf, a language agnostic contract for data serialization.
  • It's fast

* Remote Procedure Call is a protocol that allows a program to execute a procedure of another program located somewhere in the network. (think subtasks or microservices)

Why GRPC

  • Hyper efficient data transfer. GRPC uses HTTP/2 by default and sends binary representation of data
  • It's language agnostic, Protobufs can be translated into many languages and are seen as the same within the GRPC ecosystem
  • It provides a strongly-typed API contract to ensure ease of programming clients

Getting Started w/ GRPC

  • Define a service definition contract (using a Protocol Buffer (.proto) file)
  • Generate the server and client side stubs from the .proto file
  • Implement the server in one of the supported languages*
  • Implement the client that invokes the service through the stub
  • Run the server and the client

*Currently supported languages: C#, C++, Dart, Go, Java, Kotlin, Node, Objective-C, PHP, Python, Ruby

Links