The plugin
Important message
This section will use Golang. If you are not confident about using Golang, I would still encourage you to try and get a sense of what is going on. The best alternative to write such a plugin is C++, although it is a less beginner-friendly language.
Let us start creating our own protoc plugin. Since the protogen API (https://pkg.go.dev/google.golang.org/protobuf/compiler/protogen) is easy to use, we are going to build it in Golang. Similarly to the work we did in Chapter 7, we are going to separate the business logic (pkg
) and the CLI (cmd
) part of our application. So, we will have the following file structure:
. ├─ cmd │ └─ protoc-gen-check │ └─ ... ├─ go.mod ├─ pkg │ └─ protoc-gen-check │ └─ ... └─ proto └─ validate ...