Working with Protocol Buffers
Background
language-neutralなデータのシリアライズ/デシリアライズやschema-drivenな開発をしたい場合に一部 Protocol Buffters を導入している。 ここではprotoのスキーマファイルからのコード生成などどのように行うかについて記す。
Setup toolchains
Protobufのコンパイルなど開発に必要なツールチェインにはBufを利用している。 事前に公式ページに従ってインストールを行っておく。
Repository structure
前提となるレポジトリの構造や関連するconfigurationは以下の通りである。
cd /path/to/repo
ls buf.*# buf.gen.yaml buf.work.yaml
tree proto# proto# ├── buf.yaml# └── echo# └── v1# └── echo.proto## 2 directories, 2 filesprotoファイルは全てルート配下のprotoディレクトリ下で管理し、プロジェクト横断で利用する。
Run commands
Linterで静的解析する
buf lintprotoファイルからコード生成する
buf generate生成されたコードの出力先はbuf.gen.yamlによって定義される。