Protocol Buffers
Services
メンテのしやすさのために、フォークではなく、プラグイン?にした
original は memory アロケーションのオーバヘッドがでかい enum は key でも value でもよい
The name of the enum value as specified in proto is used. Parsers accept both enum names and integer values.
Manage proto file
Directory structure
BIg proto file example
optional
no presence と explicit presence の2つの考え方がある
explicit presence は値がセットされたかどうかのフラグをもつ
no presence フラグをもたない
つまりデフォルト値は値がないのと同じ扱いをされる
デフォルト値が、意味としてデフォルト値なのか、明示的にセットされた値がたまたまデフォルト値と同じ値だったかは判別できない
proto 2 は explicit 、proto 3 は最初は no presence だったが、expicit も使えるようになった。optional ラベルがついているフィールドは explicit である
API documentation
記法はツールに依存する
多くのツールで markdown には対応している模様