docker run --rm -it golang
apt update; apt install vim unzip -y
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.17.0/protoc-3.17.0-linux-x86_64.zip
unzip protoc-3.17.0-linux-x86_64.zip
mv ./bin/protoc /usr/bin
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
mkdir ~/demo ; cd ~/demo
vim ./demo.proto
syntax = "proto3";
package demo;
option go_package="github.com/wr4thon/demo";
message Target {
string Name = 1;
}
message Void {}
service Greeter {
rpc Greet(Target) returns (Void);
}
protoc --go_out=. --go-grpc_out=. ./demo.proto
Resources I used:
- justforfunc #30: The Basics of Protocol Buffers
- justforfunc #31: gRPC Basics
- google developers - protocol buffers
- Wikipedia - remote procedure call
- grpc.io
- Protocol Buffers Crash Course
- protobuf github
Links I found helpful during the preparation: