Protocol Buffers

Protocol Buffers是由Google开发的一种高效的数据序列化方式。它提供了一种轻便且强大的机制来序列化结构化的数据,适用于数据存储及通信协议。本文介绍了Protocol Buffers的工作原理,对比XML的优劣,并列举了一些实际的应用案例。

Protocol Buffers

1介绍编辑

概述

Protocol BuffersGoogle公司开发的一种 数据描述语言,类似于 XML能够将结构化数据序列化,可用于数据存储、 通信协议等方面。它不依赖于语言和平台并且可扩展性极强。现阶段官方支持C++、JAVA、Python等三种编程语言,但可以找到大量的几乎涵盖所有语言的第三方拓展包。
通过它,你可以定义你的数据的结构,并生成基于各种语言的代码。这些你定义的数据流可以轻松地在传递并不破坏你已有的程序。并且你也可以更新这些数据而现有的程序也不会受到任何的影响。
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;}
 

2优点编辑

为什么不只用XML?

同XML相比,Protocol buffers在序列化结构化数据方面有许多优点:
1. 更简单
2. 数据描述文件只需原来的1/10至1/3
3. 解析速度是原来的20倍至100倍
4. 减少了二义性
5. 生成了更容易在 编程中使用的数据访问类 [1]
6、支持多种编程语言

举例

我们可以举出例子对这两者进行比较。
XML
<person>
<name>John Doe</name>
<email>jdoe@</email>
</person>
Protocol buffers
person { name: "John Doe" email: "jdoe@“ }

3应用编辑

Protocol Buffers在谷歌被广泛用于各种结构化信息存储和交换。Protocol Buffers作为一个自定义的 远程过程调用(RPC)系统,用于在谷歌几乎所有的设备间的通信。 [2]
google在2008年7月7号将其作为开源项目对外公布。 [1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值