Protocol buffer language
A protocol buffer is a file with a minimalistic language syntax. We compile a protocol buffer and the target file is generated for a programming language. For example, in Go, the compiled file will be a .go
file with structs mapping the protobuf file. In Java, a class file will be created. Think protocol buffer as the skeleton for data with a particular order. We need to know the types before jumping into the actual code. In order to make things easier, I am going to first show JSON and its equivalent in protocol buffers. Then, we will implement a solid example.
Note
Here, we are going to use proto3 as our protocol buffer version. There are slight variations in versions, but the latest one was released with improvements.
There are many types of protocol buffer elements. Some of them are:
- Scalar values
- Enumerations
- Default values
- Nested values
- Unknown types
First, let us see how to define a message type in a protobuf. Here, we try to define a simple network interface message...