コマンド@Protocol Buffer¶
はじめに¶
本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。
01. protocコマンド¶
-I (--proto_path)¶
--proto_pathでも良い。
protoファイルのあるディレクトリを指定する。
protocコマンドでprotoファイルを直接指定するだけではエラーになる。
# foo.protoファイルのあるディレクトリを指定する
$ protoc -I=. --go_out=. foo.proto
02. プラグイン名_opt¶
--プラグイン名_optとは¶
protoファイルからpbファイルをコンパイルする時のオプションを設定する。
go_opt¶
▼ paths¶
--プラグイン名_optオプションのパスが絶対パスか相対パスかを設定する。
$ protoc -I=. --go_out=. --go_opt=paths=source_relative foo.proto
go-grpc_opt¶
▼ paths¶
$ protoc \
-I=. \
--go_out=. \
--go_opt=paths=source_relative \
--go-grpc_out=. \
--go-grpc_opt=paths=source_relative \
foo.proto
▼ require_unimplemented_servers¶
pb.goファイルにmustEmbedUnimplemented<Service名>Server関数を自動定義するかどうかを設定する。
古いgithub.com/golang/protobufパッケージから新しいgoogle.golang.org/protobufパッケージに移行する場合、これをfalseにする必要がある。
$ protoc \
-I=. \
--go_out=. \
--go_opt=paths=source_relative \
--go-grpc_out=. \
--go-grpc_opt=paths=source_relative,require_unimplemented_servers=false \
foo.proto
03. --プラグイン名_out¶
--プラグイン名_outとは¶
pbファイルの出力先パスを設定する。
--go_out¶
foo.protoファイルから、foo.pb.goファイルをコンパイルする。
$ protoc -I=. --go_out=. foo.proto
--go-grpc_out¶
foo.protoファイルから、gRPCに対応するfoo.pb.goファイルをコンパイルする。
$ protoc -I=. --go_out=. --go-grpc_out=. foo.proto
--java_out¶
foo.protoファイルから、foo.pb.javaファイルをコンパイルする。
$ protoc -I=. --java_out=. foo.proto
--php_out¶
foo.protoファイルから、foo.pb.phpファイルをコンパイルする。
$ protoc -I=. --php_out=. foo.proto
--python_out¶
foo.protoファイルから、foo.pb.pyファイルをコンパイルする。
$ protoc -I=. --python_out=. foo.proto
--ruby_out¶
foo.protoファイルから、foo.pb.rbファイルをコンパイルする。
$ protoc -I=. --ruby_out=. foo.proto
--rust_out¶
foo.protoファイルから、foo.pb.rsファイルをコンパイルする。
$ protoc -I=. --rust_out=. foo.proto