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 files
protoファイルは全てルート配下のproto
ディレクトリ下で管理し、プロジェクト横断で利用する。
Run commands
Linterで静的解析する
buf lint
protoファイルからコード生成する
buf generate
生成されたコードの出力先はbuf.gen.yaml
によって定義される。