Protocol Buffersについてのメモ書き
前準備
公式ページ: https://github.com/protocolbuffers/protobuf/releases
- 各言語バインディングをダウンロードしておく
protoc
が入っているものを環境に合わせてダウンロードしておく
やること
スキーマを定義する
(以下の例は https://developers.google.com/protocol-buffers/docs/javatutorial より引用)
syntax = "proto2";
package tutorial;
option java_package = "com.example.tutorial";
option java_outer_classname = "AddressBookProtos";
message Person {
required string name = 1;
required int32 id = 2;
optional string email = 3;
enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}
message PhoneNumber {
required string number = 1;
optional PhoneType type = 2 [default = HOME];
}
repeated PhoneNumber phones = 4;
}
message AddressBook {
repeated Person people = 1;
}
和訳:
- C++とかJavaにシンタックスがにてるね
- 右辺値はIDで、これが同じだったら同じキーとしてみなされるよ
required
は必須、optional
は任意だよrepeated
は繰り返されることもあるよ (一つもないときもあるよ)
コンパイルする
# $SRC_DIR : ソースコードのフォルダ
# $DST_DIR : 出力先?
# $NAME : protoファイルの名前
protoc -I=$SRC_DIR --java_out=$DST_DIR $SRC_DIR/$NAME