Google Protocol Buffer 的使用和原理 Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式.它可用于通讯协议.数据存储等领域的语言无关.平台无关.可扩展的序列化结构数据格式.目前提供了 C++.Java.Python 三种语言的 API. 简介 什么是 Google Protocol Buffer? 假如您在网上搜索,应该会得到类似这样的文字介绍: Google Protocol Buffe…
Google Protocol Buffer 的使用和原理 Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式.它可用于通讯协议.数据存储等领域的语言无关.平台无关.可扩展的序列化结构数据格式.目前提供了 C++.Java.Python 三种语言的 API. 2010 年 11 月 18 日 内容 简介 一个简单的例子 和其他类似技术的比较 高级应用话题 Protobuf 的更多细节 结束语 参考资料 评论 在…
本文转自: http://www.ibm.com/developerworks/cn/linux/l-cn-gpb/ Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式.它可用于通讯协议.数据存储等领域的语言无关.平台无关.可扩展的序列化结构数据格式.目前提供了 C++.Java.Python 三种语言的 API. 简介 什么是 Google Protocol Buffer? 假如您在网上搜索,应该会得到类似这…
感觉Google Protocol Buffer无论对存储还是数据交换,都是个挺有用的东西,这里记录下,以后应该用得着.下文转自: http://www.ibm.com/developerworks/cn/linux/l-cn-gpb/index.html 简介 什么是 Google Protocol Buffer? 假如您在网上搜索,应该会得到类似这样的文字介绍: Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正…
转自:https://www.ibm.com/developerworks/cn/linux/l-cn-gpb/index.html   简介 什么是 Google Protocol Buffer? 假如您在网上搜索,应该会得到类似这样的文字介绍: Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 个 .proto 文件.他们用于 RPC 系统和持续数…
这一系列文章主要是对protocol buffer这种编码格式的使用方式.特点.使用技巧进行说明,并在原生protobuf的基础上进行扩展和优化,使得它能更好地为我们服务. 在上一篇文章中,我们主要通过一些示例了解了protobuf的使用特性,以及和这些特性相关的基础编码原理. 编码原理只开了个头,所以本文将继续展示protobuf剩余的编码原理 在之前的文章中,我们只是定义了一些非常简单的模型,其中只包含了string.int和一个Name对象,所以我们首先先定义一个更复杂的模型 .proto…
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…
http://www.ibm.com/developerworks/cn/linux/l-cn-gpb/ Google Protocol Buffer 的使用和原理 Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,很适合做数据存储或 RPC 数据交换格式.它可用于通讯协议.数据存储等领域的语言无关.平台无关.可扩展的序列化结构数据格式.目前提供了 C++.Java.Python 三种语言的 API. 17 评论: 刘 明, 软件工程师, 上海交大电…
简介 Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 个 .proto 文件.他们用于 RPC 系统和持续数据存储系统. Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化.它很适合做数据存储或 RPC 数据交换格式.可用于通讯协议.数据存储等领域的语言无关.平台无关.可扩展的序列化结构数据格…
简介 Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 个 .proto 文件.他们用于 RPC 系统和持续数据存储系统. Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化.它很适合做数据存储或 RPC 数据交换格式.可用于通讯协议.数据存储等领域的语言无关.平台无关.可扩展的序列化结构数据格…
XML这种属于非常强大的一种格式,能存储任何你想存的数据,而且编辑起来还是比较方便的.致命的缺陷在于比较庞大,在某些情况下,序列化和解析都会成为瓶颈.这种对于实时性很强的应用来说,就不太适合了,想象下,设备正在紧张地进行运算,这时候来了一个解析XML任务,如果恰好这个XML比较大,那么势必产生卡顿,这个就会导致很糟糕的体验了. 二进制格式应该说很普遍的应用了,大家按照字节序列对好,编码和解码都不会有太大问题,但是几乎没什么扩展性,只要一方的格式变了,就得重新对消息,想象下一个有几十个字段的消息,…
什么是protocol Buffer呢? Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准. 我理解的就是:它是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化.方便文件的存储与网络传输. 我们自己就不用定义它们的存储与传输协议了. 怎么使用protobuf呢? 第一步, 写一个proto的文件 .定义你需要的数据结构. 每二步, 使用你想要用的语言的proto文件编译器把写的proto文件编译为目标语…
Google Protocol Buffer 使用到了两种编码方式:Varints 和 zigzag. 一 Varints 编码 每个 byte 只用 7bit 表示数字,最高位 bit作为标志位,如果为: 1,表示后续的 byte 也是该数字的一部分: 0,表示结束. 因此值越小的数字使用越少的字节数.例如小于 128 的数只需要用一个 byte 表示. 1: 0000 0001 128: 0111 1111 129: 1000 0001 0111 1111 二 Zigzag 编码 负数最高位…
Google Protocol Buffer(protobuf)是一种高效且格式可扩展的编码结构化数据的方法.和JSON不同,protobuf支持混合二进制数据,它还有先进的和可扩展的模式支持.protobuf已在大多数软件平台上实现,包括适用于Android的精简Java版. http://developers.google.com/protocol-buffers/上有protobuf文档,下载链接以及安装说明.需要注意的是,Android平台为构建精简版的protobuf,所以不能使用中央…
怎么在go语言中实用google protocol Buffer呢? 现在的潮流趋势就是一键搞定,跟ubuntu安装软件一样 go get code.google.com/p/goprotobuf/{proto,protoc-gen-go} go install  code.google.com/p/goprotobuf/proto 搞定,可以在 $GO_PATH/bin下找到 protoc-gen-go 这个程序,那么就可以实用protoc-gen-go 进行go语言的proto文件的自动生成…
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 for Vi…
前端后台以及游戏中使用Google Protocol Buffer详解 0.什么是protoBuf protoBuf是一种灵活高效的独立于语言平台的结构化数据表示方法,与XML相比,protoBuf更小更快更简单.你可以用定义自己protoBuf的数据结构,用ProtoBuf编译器生成特定语言的源代码,如C++,Java,Python等,目前protoBuf对主流的编程语言都提供了支持,非常方便的进行序列化和反序列化. 特点: 平台无关.语言无关. 二进制.数据自描述. 提供了完整详细的操作AP…
转自(https://www.cnblogs.com/yinheyi/p/6080244.html) 什么是protocol Buffer呢? Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准. 我理解的就是:它是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化.方便文件的存储与网络传输. 我们自己就不用定义它们的存储与传输协议了. 怎么使用protobuf呢? 第一步, 写一个proto的文件 .定义…
简介 Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 个 .proto 文件.他们用于 RPC 系统和持续数据存储系统. Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化.它很适合做数据存储或 RPC 数据交换格式.可用于通讯协议.数据存储等领域的语言无关.平台无关.可扩展的序列化结构数据格…
最近自己的服务器做到序列化这一步了,在网上看了下,序列化的工具有boost 和google的protocol buffer, protocol buffer的效率和使用程度更高效一些,就自己琢磨下把他加到自己的服务器里. 所以这里我先弄一个小的demo去测试如何使用和配置protocol buffer 首先是windows 平台 windows下protocol buffer 配置: 1 下载protocol buffer, 去google官网或者其他渠道下载protocol buffer包 2…
近期玩了玩谷歌的Protocol Buffer.以下就简介下 Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准.眼下已经正在使用的有超过 48,162 种报文格式定义和超过12,183 个.proto 文件,他们用于RPC 系统和持续数据存储系统.Protocol Buffers 是一种轻便高效的结构化数据存储格式,能够用于结构化数据串行化.或者说序列化.它非常适合做数据存储或 RPC 数据交换格式.可用于通讯协议.数据存储等…
一.protobuf应用场景 protobuf 在Java中的应用场景可以是序列化和反序列化,流可以通过文件或者通过网络TCP/UDP等方式传输.新建一个.proto文件 syntax = "proto3"; option java_package = "com.test.proto"; option java_outer_classname = "RequestInfo"; message SearchRequest { repeated Pa…
一.什么是Google Protocol Buffer下面是官网给的解释:Protocol buffers are a language-neutral, platform-neutral extensible mechanism for serializing structured data. – think XML, but smaller, faster, and simpler. 协议缓冲区是一种和语言无关.平台无关的可扩展机制,用于序列化结构化的数据.相比于xml,它更小,更快,更简单…
一.什么是Google Protocol Buffer(protobuf官方网站) 下面是官网给的解释: Protocol buffers are a language-neutral, platform-neutral extensible mechanism for serializing structured data. – think XML, but smaller, faster, and simpler. 协议缓冲区是一种和语言无关.平台无关的可扩展机制,用于序列化结构化的数据.相…
简介 什么是 Google Protocol Buffer? 假如您在网上搜索,应该会得到类似这样的文字介绍: Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 个 .proto 文件.他们用于 RPC 系统和持续数据存储系统. Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化.它很适合做数据…
为什么要使用PB? PB(Protocol Buffer)是 Google 开发的用于结构化数据交换格式,作为腾讯云日志服务标准写入格式.因此用于写入日志数据前,需要将日志原始数据序列化为 PB 数据流后通过 API 写入服务端.而各个端类程序中不便操作PB格式,因此需要在端类和日志服务之间加入一层PB转化层. 当然PB格式也有自己的优点,主要是简单和快. 安装Google PB 如果要想在Python中使用PB,需要先安装PB编译器protoc去编译你的.proto文件,安装方法如下: 下载最…
这一系列文章主要是对protocol buffer这种编码格式的使用方式.特点.使用技巧进行说明,并在原生protobuf的基础上进行扩展和优化,使得它能更好地为我们服务. 在上一篇文章中,我们展示了protobuf在java中的基本使用方式.而本文将继续深入探究protobuf的编码原理. 主要分为两个部分 第一部分是结合上一篇文章留下的几个伏笔展示protobuf的使用特性 第二部分是分析protobuf的编码原理,解释特性背后的原因 第一部分,Protobuf使用特性 1.不同类型对象的转…
本文主要会介绍怎么使用Google Protocol的Lib来序列化我们的数据,方法非常多种,本文仅仅介绍当中的三种.其它的方法读者能够通过自行研究摸索.但总的来说,序列化数据总的来说分为下面俩步:      1)使用数据源填充数据结构,不管数据源来自文件还是内存还是标准输入      2)利用Lib提供的序列化接口将数据结构序列化,然后存储在内存或者磁盘上           一.填充数据结构       从数据源中获取数据.这儿的数据源可能来自磁盘上的一个文件或者内存中存储的一段数据或者来自…
一.简单的介绍      Protocol buffers是一个用来序列化结构化数据的技术,支持多种语言诸如C++.Java以及Python语言.能够使用该技术来持久化数据或者序列化成网络传输的数据.相比較一些其它的XML技术而言.该技术的一个明显特点就是更加节省空间(以二进制流存储).速度更快以及更加灵活. 通常,编写一个protocol buffers应用须要经历例如以下三步: 1.定义消息格式文件.最好以proto作为后缀名      2.使用Google提供的protocol buffe…
这一系列文章主要是对protocol buffer这种编码格式的使用方式.特点.使用技巧进行说明,并在原生protobuf的基础上进行扩展和优化,使得它能更好地为我们服务. 1.什么是protobuf protocol buffer是由google推出一种数据编码格式,不依赖平台和语言,类似于xml和json.然而与xml和json最大的不同之处在于,protobuf并非是一种可以完全自解释的编码格式,这点在之后会有说明. 2.为什么要使用protobuf 和json或者xml相比,protoc…