Introduction to gRPC
Let’s explore the benefits of gRPC and learn about protocol buffers.
We'll cover the following
gRPC is an open-source remote procedure call (RPC) system that was developed at Google back in 2015. It is built on top of HTTP/2, allows us to create services easily, and uses protocol buffers as the IDL, which specifies the format of the interchanged messages and the service interface.
gRPC clients and servers can be written in any programming language without the need to have clients written in the same programming language as their servers. This means that we can develop a client in Python, even if the gRPC server is implemented in Go. The list of supported programming languages includes, but is not limited to, Python, Java, C++, C#, PHP, Ruby, and Kotlin.
Advantages
The advantages of gRPC include the following:
The use of binary format for data exchange makes gRPC faster than services that work with data in plain text format.
The command-line tools provided make our work simpler and faster.
Once we have defined the functions and the messages of a gRPC service, creating servers and clients for it is simpler than RESTful services.
gRPC can be used for streaming services.
We do not have to deal with the details of data exchange because gRPC takes care of the details.
Note: The list of advantages should not make us think that gRPC is a panacea that does not have any flaws—always use the best tool or technology for the job.
The next section discusses protocol buffers, which are the foundation of gRPC services.
Protocol buffers
A protocol buffer (protobuf) is basically a method for serializing structured data. A part of protobuf is the IDL. Because protobuf uses binary format for data exchange, it takes up less space than plaintext serialization formats. However, data needs to be encoded and decoded to be machine-usable and human-readable, respectively. Protobuf has its own data types that are translated to natively supported data types of the programming language used.
Get hands-on with 1400+ tech skills courses.