A Quick Start on Protocol Buffer with Go
Create a .proto file
First, we need to install buffer protocol tool:
# Protocol Buffer compiling tool
brew install protobuf
# With Go plugin
go get -u github.com/golang/protobuf/protoc-gen-go
Then we create a quick example file, like person.proto:
syntax="proto3";
package main;
message Person {
  string name = 2;
  int32 age = 3;
}
After that, we compile the file by running:
protoc --go_out=. *.proto
which generates a person.pb.proto file.
Use the protocol in Go code
Then with that file, we do:
package main
import (
    "github.com/golang/protobuf/proto"
)
func main() {
    person := &Person{
        Name: "Adler",
        Age:  30,
    }
    data, err := proto.Marshal(person)
    if err != nil {
        log.Fatal("Error: ", err)
    }
    // printing out raw object
    fmt.Println(data)
    // bind data to a new object
    newPerson := &Person{}
    err = proto.Unmarshal(data, newPerson)
    if err != nil {
        log.Fatal("Error: ", err)
    }
    // check result
    fmt.Println(newPerson.GetAge())
    fmt.Println(newPerson.GetName())
}
Save the file and run:
go run *.go
You should be able to see the results printed out:
Adler
30

