コマンド@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