Google Protocal Buffer

Google Protocal Buffer 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化或者说序列化。它很适合做数据存储或RPC数据交换格式。

串行化(序列化):将对象存储到解释中式以二进制方式通过网络传输。之后可以通过反串行化从这些联系的字节数据重新构建一个与袁术对象状态相同的对像。

RPC:Remote Procedure Call Protocal--(RFC-1831)远过程调用协议

Protobuf的优点:

  Protobuf有如xml,不过它更小,更快更简单。你可以自己定义自己的数据结构,然后使用代码生成器生成代码赖读写这个数据结构。你甚至可以再无需重新部署程序的情况下根性数据结构。秩序使用Protobuf对数据结构进行一次描述,即可以利用各种不同语言或者各种不同数据流中对你的结构化数据轻松读写。

  它还有一个非常棒的特性,即“向后”兼容性好,人们不必破坏已部署的、依靠老数据格式的程序就可以对数据结构进行升级。这样你的程序就可以不必担心因为消息结构的改变而造成大规模的代码重构或者前一问题。因为添加新的消息中的field并不会引起已经发布的程序的任何修改。

  Protobuf语义更清晰,无需类似xml解析器的东西(因为Protobuf编译器会将.proto文件编译生成对应的数据访问类以对数据进行序列化和反序列化操作)。

  使用Protobuf无需学习复杂的文档对象模型,Protobuf的编程模式比较友好,简单易学,同时它拥有良好的文档和示例,对于喜欢简单事物的人们而言,Protobuf比其他技术更加有吸引力

Protobuf的缺点:

   Protobuf与XML相比,它功能简单,无法用来表示复杂的概念 XML已经成为多种行业的标准编写工具,Protobuf只是Google公司内部使用的工具,在通用性上还差很多。 由于文本并不适合用来描述数据结构,所以Protobuf也不适合用来对基于文本的标记文档(HTML)建模。另外,由于XML具有某种程度上的自解释性,它可以被人直接读取编辑,在这一点上Protobuf不行,它以二进制的方式存储,除非你有.proto定义,否则你没法直接读出 Protocol Buffer可以很好的支持嵌套Message和引入Message,从而让定义复杂的数据结构的工作变得非常轻松愉快。

动态编译:

   一般情况下,使用Protobuf的人们都会先写好.proto文件,再用Protobuf编译器生成膜表语言所需要的源代码文件。将这些生成的代码和应用程序一起编译。

  可是在某些情况下,人马无法预先知道.proto文件,需要动态处理一些位置的.proto文件。这需要动态编译.proto文件,并使用其中的Message.

  Protobuf提供了google::protobuf::compiler包赖完成动态编译的功能。主要的类叫做importer,定义在importer.h中。 import类对象中包含三个主要的对象,分别为处理错误的MultiFileErrorCollector类,定义.proto文件源目录的SourceTree类

时间: 2024-10-01 11:14:57

Google Protocal Buffer的相关文章

Google protocal buffer 简介及实例

简介 ProtocolBuffer(PB) 是一种轻便高效的结构化数据存储格式,可以用于结构化数据的序列化. 类似xml和json,但PB比前两者更高效和省空间,在移动开发中更为用户省流量. PB如何做到更省流量的? 这得从它的编码方式来看,PB采用Zigzag 编码并充分利用Varint技术,从而实现二级制级的空间节省. 实例 步骤一, 书写 .proto 文件,这里直接上google官方实例,并存储为addressbook.proto package tutorial; option jav

Google Protocol Buffer 的使用和原理

Google Protocol Buffer 的使用和原理 1.https://www.ibm.com/developerworks/cn/linux/l-cn-gpb/ 2.参考资料:http://blog.csdn.net/educast/article/details/24764205 3.github源码:https://github.com/google/protobuf 4谷歌:https://developers.google.com/protocol-buffers/

【Google Protocol Buffer】Google Protocol Buffer

http://www.ibm.com/developerworks/cn/linux/l-cn-gpb/ Google Protocol Buffer 的使用和原理 Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式.它可用于通讯协议.数据存储等领域的语言无关.平台无关.可扩展的序列化结构数据格式.目前提供了 C++.Java.Python 三种语言的 API. 17 评论: 刘 明, 软件工程师, 上海交大电

Google protocol buffer使用笔记

一 下载 Google下载地址:https://developers.google.com/protocol-buffers/docs/downloads?hl=zh-CN Github下载地址:https://github.com/google/protobuf 我这里下载版本:protobuf-2.6.1.tar.gz 二 编译 1 解压 将上面的压缩包解压到文件夹 protobuf-2.6.1 中. 2 编译 2.1 在protobuf-2.6.1中,找到vsprojects/protob

Google Protocol Buffer项目无法加载解决方案

http://blog.csdn.net/suixiangzhe/article/details/52171313 今天下载Google Protocol Buffer源码研究时发现打开工程后所有项目都提示无法加载,在输出中找到错误提示是未找到导入的项目"C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\DotNet\Microsoft.DotNet.Props",在网上找了资料是说缺少.NET Core 1.0 f

Google Protocol Buffer 协议

1. Protocol Buffers 简介 Protocol Buffers (ProtocolBuffer/ protobuf )是Google公司开发的一种数据描述语言,类似于XML能够将结构化数据序列化,可以使用该技术来持久化数据或者序列化成网络传输的数据.主要用于数据存储.通信协议等方面.现阶段支持C++.JAVA.Python.Objective-C.C#.Javascript等6种编程语言.Googel 公司 2015-12-31 更新了最新的版本Version 3.0.0-bet

Google Protocol Buffer安装编译及使用

最近玩了玩谷歌的Protocol Buffer,下面就简单介绍下 Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过12,183 个.proto 文件,他们用于RPC 系统和持续数据存储系统.Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化.它很适合做数据存储或 RPC 数据交换格式.可用于通讯协议.数据存储

eclipse4.4的google protocol buffer的proto文件编辑器Protocol Buffer Editor安装

eclipse4.4的proto文件编辑器Protocol Buffer Editor安装 google protocol buffer 文件编辑器. 插件项目名称为protobuf-dt,是托管在google code上,国内现在已经连接不上google code了,在eclipse市场可以发现该插件,但是不能安装.在github上发现 有人已经做了相关的同步,可以在下面地址下载. 点击打开链接 其他地址也可以. 本人的为eclipse-jee-luna-SR2-win32-x86_64,安装

google proto buffer安装和简单示例

google proto buffer安装和简单示例 1.安装 下载google proto buff. 解压下载的包,并且阅读README.txt,根据里面的指引进行安装. $ ./configure $ make $ make check $ make install 没有意外的话,前面三步应该都能顺利完成,第四步的时候,需要root权限.我采用的默认的路径,所以,仅仅用root权限,还是安装不了,要自己先在/usr/local下新建一个lib的目录,然后执行make install,这样,