Back

Working with Protocol Buffers

Background

language-neutralなデータのシリアライズ/デシリアライズやschema-drivenな開発をしたい場合に一部 Protocol Buffters を導入している。 ここではprotoのスキーマファイルからのコード生成などどのように行うかについて記す。

Setup toolchains

Protobufのコンパイルなど開発に必要なツールチェインにはBufを利用している。 事前に公式ページに従ってインストールを行っておく。

Repository structure

前提となるレポジトリの構造や関連するconfigurationは以下の通りである。

Terminal window
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で静的解析する

Terminal window
buf lint

protoファイルからコード生成する

buf generate

生成されたコードの出力先はbuf.gen.yamlによって定義される。