Protocol Buffers (Protobuf)
Protocol Buffers adalah format serialisasi yang tidak bergantung bahasa dari Google untuk data terstruktur. Lebih kompak dan cepat daripada JSON atau XML, dan menggunakan definisi skema (file .proto) untuk menghasilkan kode yang type-safe dalam puluhan bahasa pemrograman.
Tipe MIME
application/x-protobuf
Tipe
Biner
Kompresi
Lossless
Kelebihan
- + 10-100x smaller and faster than JSON/XML
- + Schema-driven with generated type-safe code
- + Backward-compatible schema evolution via field numbers
- + Standard wire format for gRPC
Kekurangan
- − Not human-readable — binary format requires tooling
- − Requires .proto schema definition and code generation step
- − Not suitable for human-edited configuration files
Kapan Menggunakan .PROTOBUF
Gunakan Protobuf untuk layanan gRPC, komunikasi microservice internal, dan sistem apa pun yang memerlukan serialisasi cepat, kompak, dan berbasis skema.
Detail Teknis
Protobuf menggunakan skema .proto dengan field bernomor yang dikompilasi ke kode spesifik bahasa. Format wire biner menggunakan encoding varint untuk integer dan encoding length-delimited untuk string dan pesan bersarang.
Riwayat
Google mengembangkan Protocol Buffers secara internal dan merilisnya sebagai open source pada tahun 2008. Proto2 menambahkan field opsional, dan Proto3 (2016) menyederhanakan bahasa dengan nilai default. gRPC menggunakan Protobuf sebagai format wire defaultnya.