Protocol Buffers (Protobuf)
Protocol Buffers เป็นรูปแบบ serialize ข้อมูลแบบ language-neutral ของ Google สำหรับข้อมูลที่มีโครงสร้าง กระชับและเร็วกว่า JSON ใช้กันอย่างแพร่หลายสำหรับบริการ gRPC และการสื่อสารภายในระหว่างบริการ
ประเภท MIME
application/x-protobuf
ประเภท
ไบนารี
การบีบอัด
ไม่สูญเสียคุณภาพ
ข้อดี
- + 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
ข้อเสีย
- − Not human-readable — binary format requires tooling
- − Requires .proto schema definition and code generation step
- − Not suitable for human-edited configuration files
เมื่อใดควรใช้ .PROTOBUF
ใช้ Protobuf สำหรับบริการ gRPC การสื่อสารภายในระหว่างไมโครเซอร์วิส และระบบที่ต้องการการ serialize ที่เร็ว กระชับ และขับเคลื่อนด้วยสกีมา
รายละเอียดทางเทคนิค
Protobuf ใช้สกีมา .proto พร้อมฟิลด์ที่มีหมายเลขซึ่งคอมไพล์เป็นโค้ดเฉพาะภาษา รูปแบบ wire ไบนารีใช้ varint encoding สำหรับจำนวนเต็มและ length-delimited สำหรับสตริง
ประวัติ
Google พัฒนา Protocol Buffers ภายในองค์กรและเปิดเป็นโอเพนซอร์สในปี 2008 Proto2 เพิ่มฟิลด์เสริม และ Proto3 (2016) ทำให้สกีมาเรียบง่ายขึ้นและเพิ่มรองรับ JSON