Pada modul ini kita akan belajar mengkompilasi file .proto ke beberapa bahasa.
Pada file project, buat direktori baru, proto, python, java dan go.
Agar lebih terognanisir, pindahkan file date.proto dan person.proto yang telah dibuat di modul sebelumnya kedalam directory proto.
Perintah dasar yang umum digunakan adalah
$ protoc -I=directory_source_proto --python_out=directory_target file_proto
- -I untuk directory source file proto.
- –python_out adalah option target, terdapat beberapa target bahasa yang digunakan. membutuhkan parameter direktori untuk menyimpan hasil compile.
- file_proto : adalah file .proto yang akan dicompile, gunakan *.proto untuk compile semua file
Untuk target bahasa terdapat pilihan:
--cpp_out=OUT_DIR Generate C++ header and source.
--csharp_out=OUT_DIR Generate C# source file.
--java_out=OUT_DIR Generate Java source file.
--js_out=OUT_DIR Generate JavaScript source.
--kotlin_out=OUT_DIR Generate Kotlin file.
--objc_out=OUT_DIR Generate Objective-C header and source.
--php_out=OUT_DIR Generate PHP source file.
--pyi_out=OUT_DIR Generate python pyi stub.
--python_out=OUT_DIR Generate Python source file.
--ruby_out=OUT_DIR Generate Ruby source file.
Contoh compile target python
$ protoc -I=proto --python_out=python proto/*.proto
Jika Anda buka directory python, dapat dilihat terdapat 2 file baru yang digenerate oleh protoc compiler.
- date_pb2.py
- person_pb2.py
Contoh compile target java
$ protoc -I=proto --java_out=java proto/*.proto
Jika Anda buka directory java, dapat dilihat terdapat 2 file baru dalam 2 direcotry yang digenerate oleh protoc compiler
java
|-my
| |-date
| |- DateOuterClass.java
|
|-person
|-PersonOuterClass.java
Compile Go
Untuk Go, sedikit repot, anda perlu install dahulu pluginnya, buka command prompt lalu jalankan perintah berikut:
$ go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
Perintah diatas akan menginstall plugin protoc-gen-go.exe di Go directory.
Tambahkan path GOPATH kedalam system Path, agar protoc compiler mengetahui lokasi plugin.
Kemudian anda perlu menambahkan option go_package = “nama package”; pada file .proto.
Dengan menggunakan contoh file person.proto dan date.proto, maka perlu ditambahkan seperti berikut
option go_package = "./person";
option go_package = "./my.date";
Kemudian jalankan perintah pada command prompt
protoc -I=proto --go_out=go proto/*.proto
Jika Anda lihat directory go, file generate sudah dibuat
go
|-my.date
| |- date.pb.go
|
|-person
|-person.pb.go
Sampai disini kita sudah berhasil melakukan compile ke 3 bahasa favorite.
Dengan berakhirnya modul ini, tuotrial Protobuf Dasar Sudah selesai. Semoga bermanfaat.