Categories: Linux

Compile Protobuf dan Protobuf Java di Centos 7

Protobuf? Apaan sih sebenernya? Kok gak pernah denger?

Oke oke. Jadi ceritanya ni protobuf adalah sebuah software / library yang dikembangin oleh google, yang tujuannya untuk mempermudah pembuatan program yang memakai RPC (remote procedure call). Protobuf ini mirip mirip dengan apache thrift. Untuk installnya, ikutin aja script berikut:

#!/bin/bash
# dependencies
# Java JDK
yum install "Development Tools"
yum install libtool

# clone protobuf
git clone https://github.com/google/protobuf.git
cd protobuf
./autogen.sh
./configure
make
make check
sudo make install

# compile protobuf java
cd java
yum install maven
mvn test
mvn install
mvn package
 
# compile grpc java
git clone https://github.com/grpc/grpc-java.git
cd grpc-java
./gradlew build
./gradlew install

# compile grpc java compiler
cd compiler
../gradlew java_pluginExecutable >& log.javacompiler
sudo ln -s /home/protobuf/grpc-java/compiler/build/binaries/java_pluginExecutable/protoc-gen-grpc-java /usr/local/bin/

Setelah protobuf udah tercompcompile dengan benar, maka akan ada file protoc dan file protoc-gen-grpc-java.Langkah berikutnya adalah membuat file .proto. Contoh filenya adalah seperti berikut

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 phone = 4;
}

message AddressBook {
  repeated Person person = 1;
}

Untuk menggunakannya, cukup menggunakan script berikut:

cd
mkdir out
protoc hello_world.proto --grpc-java_out=out --java_out=out

Setelah itu, di folder out akan ada file *.java yang dapat dipakai untuk membuat program menggunakan RPC 😀

 

Tutorial ini seharusnya bisa jalan di linux apapun, asalkan memiliki arsitektur 64 bit. Saat dicoba compile di Ubuntu 32 bit, ada error ketika gradlew dijalankan.

Akhmad Fakhoni Listiyan Dede

Share
Published by
Akhmad Fakhoni Listiyan Dede

Recent Posts

Mengimplementasikan AI untuk Melakukan Review pada Pull Request Github

Halo semua Github memiliki fitur terkait Pull Request yang cukup luar biasa, yaitu dapat melakukan…

6 months ago

Install kubernetes cluster using kubeadm

Hello everyone! 👋 Welcome to our step-by-step guide on using kubeadm to install Kubernetes. It's…

1 year ago

Meningkatkan Efisiensi Memory Proxmox Lebih dari 20%

Proxmox adalah hypervisor yang populer digunakan karena penggunaannya yang cukup simpel jika dibandingkan dengan hypervisor…

4 years ago

Longhorn Failed Upgrade from v0.8.1 to v1.0.0 caused by pv created before v0.6.2

This post is mirror of https://forums.rancher.com/t/failed-upgrade-from-v0-8-1-to-v1-0-0-caused-by-pv-created-before-v0-6-2/17586 I scale down all pods that has vpc to…

4 years ago

Cara Setup Network Ubuntu Server 18.04 pada Proxmox

Ubuntu Konfigurasi network pada Ubuntu Server 18.04 berbeda dengan ubuntu versi sebelumnya. Versi sebelumnya menggunakan…

5 years ago

VSCode Terminal Font Fix on MacOS

For detailed problems, see https://notulensiku.com/2019/02/fix-integrated-terminal-font-vscode/ To solve on mac, you need to install powerline fonts…

5 years ago