Protocol Buffers (Protobuf)
Protocol Buffers هو تنسيق تسلسل محايد اللغة من Google للبيانات المنظمة. وهو أكثر ضغطاً وأسرع من JSON أو XML ويستخدم تعريفات المخطط (ملفات .proto) لتوليد كود آمن الأنواع بعشرات لغات البرمجة.
نوع 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 والتواصل الداخلي بين الخدمات المصغرة وأي نظام يحتاج تسلسلاً سريعاً ومضغوطاً ومدفوعاً بالمخطط.
التفاصيل التقنية
يستخدم Protobuf مخطط .proto بحقول مرقمة تُترجم إلى كود خاص باللغة. يستخدم التنسيق السلكي الثنائي ترميز varint للأعداد الصحيحة وترميز محدد الطول للسلاسل والرسائل المتداخلة.
التاريخ
طورت Google تنسيق Protocol Buffers داخلياً وأصدرته كمصدر مفتوح في 2008. أضاف Proto2 حقولاً اختيارية وبسّط Proto3 (2016) اللغة بقيم افتراضية. يستخدم gRPC تنسيق Protobuf كتنسيق سلكي افتراضي.