Protocol Buffers,是Google公司開發的一種數據描述語言,類似於XML能夠將結構化數據序列化,可用於數據存儲、通信協定等方面。
基本介紹
作用,樣例,優點,套用,
作用
通過它,你可以定義你的數據的結構,並生成基於各種語言的代碼。這些你定義的數據流可以輕鬆地在傳遞並不破壞你已有的程式。並且你也可以更新這些數據而現有的程式也不會受到任何的影響。
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;
}
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@"}
套用
google在2008年7月7號將其作為開源項目對外公布。