gRPC Code Generation with Protocol Buffer

How stubs are Generated

  • Untuk membuat stubs yang digunakan komunikasi antar server maka kita harus membuat API Contracts

  • API Contracts

    • Service dan payload message yang didefinisikan dengan menggunakan Protocol Buffer

  • Server dan client akan di generate secara otomatis dengan menggunakan

    • Protocol Buffer complier (protoc)

    • gRPC plugins yang ada di setiap Bahasa Pemrograman

example generated stubs
syntax = "proto3";

message HelloRequest { string name = 1; }

message HelloResponse { string greet = 1; }

service WelcomeService {
  rpc Hello(HelloRequest) returns (HelloResponse) {};
}

Why gRPC uses Protocol Buffer

  • Human-readable Interface Definition Language ( IDL )

  • Programming languages interoperable:

    • Code generators untuk banyak bahasa pemrograman

  • Binary data representation :

    • smaller size ( ukuran yang kecil )

    • faster to transport ( cepat untuk dipindahkan antar server )

    • Lebih efisien untuk serialize / deserialize

  • Strongly typed contract

  • Conventions for API evolution

    • Backward & forward compatibility

  • Pilihan alternatif selain gRPC

    • Google flatbuffers

    • Microsoft bond

What Languages are Supported by gRPC

  • 10 officially supported languages

    • Pure implementations: Go, Java, NodeJS

    • Wrap C-gRPC core: C/C++, C#, Objective-C, Python, Ruby, Dart, PHP

Last updated

Was this helpful?