Protocol Buffers

Protocol Buffers（简称：ProtoBuf）是一種开源跨平台的序列化資料結構的协议。其對於儲存資料或在网络上進行通訊的程式是很有用的。這個方法包含一個接口描述語言，描述一些資料結構，並提供程式工具根據這些描述產生程式碼，这些代码将用来生成或解析代表这些数据结构的字节流。

概览
Google最初开发了Protocol Buffers用于内部使用。Protocol Buffers的设计目标是简单和性能。特别地，它被设计地与XML相比更小且更快。

Protocol Buffers在Google内被广泛用来存储和交换各种类型的结构化数据。在Google，它被当作一个RPC系统的基础，并被用于几乎所有的跨服务器通信。

Protocol Buffers和Apache Thrift和Ion等协议很相似，同时也提供了一个RPC协议栈gRPC来给上层服务使用。

語言支持
proto2提供一個程式產生器，支援C++、Java和Python。

第三方實作支援JavaScript。

proto3提供一個程式產生器，支援C++、Java (包含JavaNano)、Python、Go、Ruby、Objective-C和C#.從 3.0.0 Beta 2 版開始支援JavaScript。

第三方實作支援Perl、PHP、Dart、Scala和Julia.

參考文獻

外部連結
Official project page at developers.google.com
Another official home page at Github project hosting
Protocol Buffers Objective-C 
Protocol Buffers Apple Swift

數據序列化格式
Google軟體
使用BSD许可证的软件