Protocol Buffers

Protocol Buffers

Protocol Buffers,是Google公司開發的一種數據描述語言,類似於XML能夠將結構化數據序列化,可用於數據存儲、通信協定等方面。

基本介紹

作用,樣例,優點,套用,

作用

它不依賴於語言和平台並且可擴展性極強。現階段官方支持C++JAVAPython三種程式語言,但可以找到大量的幾乎涵蓋所有語言的第三方拓展包。
通過它,你可以定義你的數據的結構,並生成基於各種語言的代碼。這些你定義的數據流可以輕鬆地在傳遞並不破壞你已有的程式。並且你也可以更新這些數據而現有的程式也不會受到任何的影響。
Protocol Buffers經常被簡稱為protobuf。

樣例

通過定義一些數據和結構放在一個 .proto 檔案之中。每一個protocol buffer 信息都是一小段結構,包含了一些名字。下面是一個.proto 檔案內容的樣例。
[pre]message Point {
required int32 x = 1;
required int32 y = 2;
optional string label = 3;
}
message Line {
required Point start = 1;
required Point end = 2;
optional string label = 3;
}
message Polyline {
repeated Point point = 1;
optional string label = 2;
}

優點

為什麼不使用XML?
同XML相比,Protocol buffers在序列化結構化數據方面有許多優點:
1. 更簡單
2. 數據描述檔案只需原來的1/10至1/3
3. 解析速度是原來的20倍至100倍
4. 減少了二義性
5. 生成了更容易在編程中使用的數據訪問類
6、支持多種程式語言
舉例
我們可以舉出例子對這兩者進行比較。
XML
<person>
<name>John Doe</name>
<email>jdoe@</email>
</person>
Protocol buffers
person { name: "John Doe" ; email: "jdoe@"}

套用

Protocol Buffers在谷歌被廣泛用於各種結構化信息存儲和交換。Protocol Buffers作為一個自定義的遠程過程調用RPC)系統,用於在谷歌幾乎所有的設備間的通信。
google在2008年7月7號將其作為開源項目對外公布。

相關詞條

熱門詞條

聯絡我們