Protocol Buffers 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Protocol Buffers 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议 BSD
开发语言 Java C/C++ Python
操作系统 跨平台
软件类型 开源软件
所属分类 程序开发常用工具包
开发厂商 Google
地区 不详
提 交 者 JavaGG
适用人群 未知
收录时间 2009-11-18

软件简介

Protocol Buffers (ProtocolBuffer/ protobuf )是Google公司开发的一种数据描述语言,类似于XML能够将结构化数据序列化,可用于数据存储、通信协议等方面。现阶段支持C++、JAVA、Python等三种编程语言。

为什么不只用XML?同XML相比,Protocol buffers在序列化结构化数据方面有许多优点(google官方提出):

  • 更简单

  • 数据描述文件只需原来的1/10至1/3

  • 解析速度是原来的20倍至100倍

  • 减少了二义性

  • 生成了更容易在编程中使用的数据访问类

google大概是今天(08年7月8号)将其作为开源项目对外公布,说是后续还要开源的项目有不少都会用到Protocol Buffers。

展开阅读全文

代码

评论 (4)

加载中
下载不了啊,要翻墙!
2018/08/27 16:01
回复
举报
很方便 不错 Protocol Buffers
2013/10/29 17:40
回复
举报
尼玛,WebSocket + Protocol Buffers,真先进,终于可以拿到数据并解析出来了13
2013/12/13 16:36
回复
举报
2015/12/29 22:59
回复
举报
更多评论
发表于大前端专区
03/10 08:16

Protocol Buffers 引入新的 Go API,并无限期支持旧版本

Go 团队宣布推出 Protocol Buffers 新的 Go API(APIv2),并表示这是一个重要的修订版本。APIv2 主要提供了反射(Reflection)功能,开发者通过它能够检测 Protocol Buffers 类型系统的数值,但由于官方变更了 Message 的类型定义,因此 API 的新旧版本不兼容。 Protocol Buffers 是谷歌开发的语言无关的数据交换格式,...

1
10
发表了资讯
2017/09/21 07:48

Protocol Buffers 3.4.1 发布,Google 数据交换格式

Protocol Buffers 是 Google 开源的一种数据交换格式,采用简单的二进制格式,比 XML、JSON 格式体积更小,编码解码效率更高,可用于数据存储、通信协议等方面。 Protocol Buffers 目前支持 Java、Python、Objective-C 、C ++、Go、JavaNano、Ruby 和 C# 。 Protocol Buffers 3.4.1 是一个 bug 修复版本: 修复 3.4.0 ...

3
20
发表了资讯
2016/09/26 00:00

Protocol Buffers 3.1.0,PHP 支持 Proto3 协议

Protocol Buffers 3.1.0发布了,该版本主要更新以下内容: PHP(Alpha)已支持Proto3协议 修复了一些bug 发行说明和下载地址: https://github.com/google/protobuf/releases/tag/v3.1.0 Protocol Buffers (ProtocolBuffer/ protobuf )是Google公司开发的一种数据描述语言,类似于XML能够将结构化数据序列化,可用于数据...

4
16
发表了资讯
2016/07/30 00:00

Protocol Buffers 3.0 稳定版发布

Protocol Buffers 3.0 发布,该版本与上一个稳定版 2.6.1 版本比较,主要改进包括: 全面的 3.0 协议版本 proto3: 废弃 optional 关键字 Removed non-zero default values and field presence logic for non-message fields. Group fields are no longer supported in proto3 syntax. Changed repeated primitive field...

17
47
发表了资讯
2014/12/16 00:00

Google Protocol Buffers v3.0.0-alpha-1 发布

Google Protocol Buffers v3.0.0-alpha-1 发布,新特性包括: Removal of field presence logic for primitive value fields, removal of required fields, and removal of default values. This makes proto3 significantly easier to implement with open struct representations, as in languages like Android Java...

9
14
发表了资讯
2014/09/27 00:00

Protocol Buffers 2.6.0 发布

Protobuf 2.6.0 发布,此版本现已提供下载,更新内容如下: 常规更新 添加 oneofs(unions) 功能。Fields in the same oneof will share memory and at most one field can be set at the same time. Use the oneof keyword to define a oneof like: message SampleMessage {   oneof test_oneof {     string ...

4
29
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表于AI & 大数据专区
2019/07/24 04:10

Protocol Buffers 简介

文档编辑和持续集成状态: 本文档的 Protocol Buffer 的中文文档使用的是 Asciidoctor 进行编排的 http://docs.ossez.com/protocol-buffers-docs/index.html(本 WIKI 中的内容将会与在线发布的版本同步) Google......

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表于软件架构专区
2019/12/12 16:49

这个代码不全吧,是不是有代码没上传完

这个代码不全吧,是不是有很多代码没上传吧,比如如下这些类: io.seata.codec.protobuf.generated.AbstractBranchEndRequestProto; io.seata.codec.protobuf.generated.AbstractMessageProto; io.seata.codec.protobuf.generated.AbstractTransactionRequestProto; io.seata.codec.protobuf.generated.BranchRollbackRe...

1
0
2018/12/19 11:12

使用protobuf 编码传输中文出现乱码

a

2
0
发表了问答
2017/11/14 16:49

Protostuff序列化问题

class ChatRoom {   /** 房间成员 */   private Set<Integer> pids = Sets.newHashSet();   public Set<Integer> getPids() {     return pids;   }   public void setPids(Set<Integer> pids) {     this.pids = pids;   }    } public class App {   public static void main(String[] args) throws Exception {     byte[] bytes ...

1
0
发表了问答
2017/02/21 09:34

protobuf 3 对接java属性问题

proto3.X生成java文件时,proto文件想表示Class[]以及Object[]这样的属性时,怎么定义啊?

1
0
发表了问答
2016/03/17 10:59

困扰了一个月,实在试过很多方法,到底怎么编译protobuf arch64啊

ios用,真有能在mac上编译的方法么

1
0
发表了问答
2016/08/26 19:01

关于protobuffer 的js版本使用方式

在通讯时,需要使用的protobuffer,目前有两种客户端,一个是在游戏桌面端,和服务器交互,使用的是protobuffer,现在需要在websocket前端客户端也添加protobuffer,网上看到个js版本,不太好使!希望接触过的同僚们,能给些建议,没接触过的,想了解下的,顶起谢谢!

2
0
发表了问答
2015/04/30 17:35

谁有使用Google的开源技术protobuf的Java程序例子?

谁有使用Google的开源技术protobuf的Java程序例子?

1
0
发表了问答
2016/05/11 00:59

[50元话费问题解决]ios oc/swift 使用cocoaasyncsocket 交互 Netty Protobuf的服务器的Demo?

最好是Swift 2.2的Demo, OC的也行。刚接触IOS不太熟,希望各位赐教!谢谢!

1
0
发表了问答
2015/09/02 16:21

Netty 4.x处理多个protobuf协议

@_beaman 你好,想跟你请教个问题: 你好 netty 4.x 处理多个protobuf协议 请问你这个问题解决了吗 ? 方便把你的解决方案(相关代码) 发我下么, 我的邮箱 823803676@qq.com 谢谢大哥

1
0
发表了问答
2016/02/24 11:13

懂Netty的请帮帮我,我使用Netty+Protobuf来实现信息编码解码,如何区分不同的信息调用相应解码

懂Netty的请帮帮我,我使用Netty+Protobuf来实现信息编码解码,如何区分不同的信息调用相应解码 想法是这样的 。 一个a.proto负责处理用户发送图片的请求,一个b.proto负责处理用户的文本消息 但是要如何根据不同的信息调用不同的解码呢?Netty我看到的大部分都是只有一个ProtobufDecoder负责一个解码。我希望能够根据不...

5
0
发表了问答
2013/10/28 11:16

Google 的开源技术protobuf 简介与例子

今天来介绍一下“ProtocolBuffers”(以下简称protobuf)这个玩意儿。本来俺在构思“生产者/消费者模式 ”系列的下一个帖子:关于生产者和消费者之间的数据传输格式。由于里面扯到了protobuf,想想干脆单独开一个帖子算了。   ★protobuf是啥玩意儿?   为了照顾从没听说过的同学,照例先来扫盲一把。   首先,pro...

1
13
发表了问答
2010/11/21 23:50

[IBM DW] Google Protocol Buffer 的使用和原理

什么是 Google Protocol Buffer? 假如您在网上搜索,应该会得到类似这样的文字介绍: Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 个 .proto 文件。他们用于 RPC 系统和持续数据存储系统。 Protocol Buffers 是一种轻...

6
19
发表了问答
2014/06/06 14:27

protobuf 序列化 c++

大家好,请问大家一个protobuf序列化的问题,我用的pb版本是2.5.0,问题是: 生成的头文件里面只有一个SerializeWithCachedSizes方法,我想把这个类序列化成字节数组,通过网络发送出去,网上pb教程中不少提到了SerializeToArray方法,很符合我的要求,为什么我的头文件中没有这个方法呢?首次使用pb,还不是很熟悉,如果...

1
0
发表了问答
2010/07/28 09:42

protobuf在网络编程中的应用思考

protobuf是google提供的一个开源序列化框架,类似于XML,JSON这样的数据表示语言,其最大的特点是基于二进制,因此比传统的XML表示高效短小得多。虽然是二进制数据格式,但并没有因此变得复杂,开发人员通过按照一定的语法定义结构化的消息格式,然后送给命令行工具,工具将自动生成相关的类,可以支持java、c++、pytho...

2
4
发表了问答
2012/09/01 16:30

protobuf 根据类名直接生成Java对象

Message* createMessage(const std::string& typeName) { Message* message = NULL; const Descriptor* descriptor = DescriptorPool::generated_pool()->FindMessageTypeByName(typeName); if (descriptor) { const Message* prototype = MessageFactory::generated_factory()->GetPrototype(descriptor); ...

4
0
发表了问答
2011/02/23 16:01

关于GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFF宏的问题

宏GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFF在google protobuf中用于计算类中成员变量的偏移量,提供类似C语言中offsetof宏的功能。根据C++的规定,对于公有成员变量可以使用宏的方法获取其偏移量;但是在google protobuf生成的C++代码中用该宏计算私有成员变量的偏移量,想问一下诸位,有谁能具体解释一下google pr...

1
1
发表了问答
2013/03/04 15:06

几种 Java 序列化方案的性能比较

来源:https://github.com/eishay/jvm-serializers/wiki 比较结果: create ser deser total size +dfl java-built-in 62 5608 29649 35257 889 514 hessian 65 3812 6708 10519 501 313 kryo ...

4
34
发表了问答
2013/07/07 11:06

protobuf复杂结构如何使用?

我有以下一个结构,要进行网络传输: message NewCallInfoReq { required string custom=1; required string bindPhone=2; required string callPhone=3; required string lsh=4; required Contact ctt=5; //Contact message optional Account act=6; //Account message optional Case cs=7; //Case message } 在给对端发...

2
0
发表了问答
2013/06/07 16:12

go语言中关于protobuf的问题

@chai2010 你好,想跟你请教个问题:go语言关于protobuf的问题的,我发现编译出的文件中有 import proto "code.google.com/p/goprotobuf/proto" import json "encoding/json" import math "math" // Reference proto, json, and math imports to suppress error if they are not otherwise used. var _ = proto.Marshal...

2
0
发表了问答
2012/12/06 13:47

netty 在android下面一直报exceptionCaught:java.lang.ClassCastException: org.jboss.netty.buffer.BigEndianHeapChannelBuffer

最近做一个项目,通讯选用netty+protobuf方案,临近发版了,发现android端的控制台一直报 exceptionCaught:java.lang.ClassCastException: org.jboss.netty.buffer.BigEndianHeapChannelBuffer 这样的错误,未找到原因. 有没有遇到过这样问题的朋友,指点一二...

2
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
4 评论
367 收藏
分享
返回顶部
顶部