Protocol Buffers

来自Local Chinese Wikipedia
imported>Yumeto2026年3月2日 (一) 15:23的版本 (使用DisamAssist清理消歧義連結:Go(改連結至Go語言)。)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转到导航 跳转到搜索
Protocol Buffers
开发者Module:Wd第196行Lua错误:attempt to call field 'getGlobalSiteId' (a nil value)
首次发布2008年7月7日 (2008-07-07)
当前版本Module:Wd第196行Lua错误:attempt to call field 'getGlobalSiteId' (a nil value)Module:Wd第196行Lua错误:attempt to call field 'getGlobalSiteId' (a nil value) 错误:第一个参数不能被解析为日期或时间。
操作系统任何
平台跨平台
类型序列化格式与函数库、接口描述语言编译器
许可协议Module:Wd第196行Lua错误:attempt to call field 'getGlobalSiteId' (a nil value)
网站Module:Wd第196行Lua错误:attempt to call field 'getGlobalSiteId' (a nil value)

Protocol Buffers(简称:ProtoBuf)是一种开源跨平台的序列化资料结构的协议。其对于存储资料或在网络上进行通信的程序是很有用的。这个方法包含一个接口描述语言,描述一些资料结构,并提供程序工具根据这些描述产生代码,这些代码将用来生成或解析代表这些数据结构的字节流。

概览[编辑]

Google最初开发了Protocol Buffers用于内部使用。Protocol Buffers的设计目标是简单和性能。特别地,它被设计地与XML相比更小且更快。

Protocol Buffers在Google内被广泛用来存储和交换各种类型的结构化数据。在Google,它被当作一个RPC系统的基础,并被用于几乎所有的跨伺服器通信。

Protocol Buffers和Apache Thrift和Ion等协议很相似,同时也提供了一个RPC协议栈gRPC来给上层服务使用。

语言支持[编辑]

proto2提供一个程序产生器,支持C++JavaPython[1]

第三方实现支持JavaScript[2]

proto3提供一个程序产生器,支持C++Java (包含JavaNano)、PythonGoRubyObjective-CC#.[3]从 3.0.0 Beta 2 版开始支持JavaScript。[4]

第三方实现支持PerlPHPDartScalaJulia.[5]

参考文献[编辑]

  1. Protocol Buffers Language Guide. Google Developers. [2016-04-21]. (原始内容存档于2016-05-13). 
  2. Protocol Buffers for JavaScript.. github.com. [2016-05-14]. (原始内容存档于2017-02-22). 
  3. Protocol Buffers Language Guide (proto3). Google Developers. [2016-04-21]. (原始内容存档于2016-04-22). 
  4. Protocol Buffers v3.0.0-beta-2. Google Developers. [2016-05-14]. 
  5. ThirdPartyAddOns - protobuf - Links to third-party add-ons. - Protocol Buffers - Google's data interchange format - Google Project Hosting. Code.google.com. [2012-11-07]. (原始内容存档于2012-10-29). 

外部链接[编辑]