%% date:: [[2022-09-28]] %% # [[gRPC]] [site](https://grpc.io/) gRPC is an implementation of [[Remote Procedure Call]] (RPC) developed by [[Google]]. It is a design framework for [[API]]s that uses [[HTTP 2]] as a transport protocol. It is a procedure-oriented API model, but mixes it with the entity-oriented API model so that the actual endpoints are accessible via [[HTTP]]. gRPC is a [[CNCF]] incubating project, and it was accepted in February 2017. ## APIs There are four main [[API]] types of RPCs: - unary - server streaming - client streaming - bidirectional streaming ![[Performance Testing gRPC Services#^apis]] ## Advantages of gRPC ### It's performant gRPC, like [[Remote Procedure Call|RPC]], sends messages in binary format, which means it doesn't need to be [[Interpreted programming languages|interpreted]], reducing performance overhead. ### It has support for a variety of languages gRPC has libraries for a lot of languages, like [[C]], [[Go]], [[Java]], [[Python]], [[Kotlin]], [[Ruby]], [[PHP]], [[Dart]], and many more. ### It's simple gRPC uses [[Protobuf]] to define services, so it's leveraging an existing standard. It's also easy to get started with gRPC, as the runtime and dev environment can be installed with one command. [^grpc] [^grpc]: gRPC. Retrieved on July 15th, 2023 from https://grpc.io/