A protocol buffer is a file with minimalist language syntax. We compile a protocol buffer, and a new file is generated for a target 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 of a protocol buffer as a data structure with types. The protocol buffer language provides various types that we can use to create interfaces. First, we'll discuss all the types with equivalent JSON snippets. After that, we'll implement a full example of a protocol buffer. From here on, we'll use the terms protobuf/s and protocol buffers interchangeably.
Here, we are going to use proto3 as our protobuf version. There are slight variations in versions, so please note the differences when you are using older versions.
First, let's learn how to...