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