页面载入中...

Protocol Buffers 简介

Google 于昨日公布了它自己使用的结构化数据存储描述语言 Protocol Buffers,大致地看了下它的文档,可以将 Protocol Buffers 的特点归纳如下:

Protocol Buffers 是一种可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。

只需使用 Protocol Buffers 对数据结构进行一次描述,即可利用各种不同语言或从各种不同数据流中对你的结构化数据轻松读写。

Protocol Buffers 可扩展性好,“向后”兼容性好,你甚至不必破坏已部署的、依靠“老”数据格式的程序就可以对数据结构进行升级。

Protocol Buffers 以高效的二进制方式存储,比 XML 小 3 到 10 倍,快 20 到 100 倍,语义更清晰,无需类似 XML 解析器的东西(因为 Protocol Buffers 编译器会将 .proto 文件编译生成对应的数据访问类以对 Protocol Buffers 数据进行序列化、反序列化操作)。

Protocol Buffers 与 XML 相比也有不足之处。由于文本并不适合用来描述数据结构,所以 Protocol Buffers 也不适合用来对基于文本的标记文档(如 HTML)建模。另外,由于 XML 具有某种程度上的自解释性,它可以被人直接读取编辑,在这一点上 Protocol Buffers 不行,它以二进制的方式存储,除非你有 .proto 定义,否则你没法直接读出 Protocol Buffers 的任何内容。

总之,Protocol Buffers 是一种轻便高效的结构化数据存储格式,很适合做数据存储或 RPC 数据交换格式。

更详细的信息请访问 Protocol Buffers Developer GuideProtocol Buffers Group

4条留言. 发言 or Trackback

  • Fm  00:47 Jul 09, 2008 

    居然不支持.NET,,看来偶是玩不上了。

    对了,能和你做个链接么?

  • http://www.newwings.cn  01:26 Jul 09, 2008 

    Protocol Buffers 与 XML 相比也有不足之处。由于文本并不适合用来描述数据结构,所以 Protocol Buffers 也不适合用来对基于文本的标记文档(如 HTML)建模。另外,由于 XML 具有某种程度上的自解释性,它可以被人直接读取编辑,在这一点上 Protocol Buffers 不行,它以二进制的方式存储,除非你有 .proto 定义,否则你没法直接读出 Protocol Buffers 的任何内容

  • 布布衣  09:14 Jul 09, 2008 

    取长补短,各有所需,应用不同的地方,可能各有优势吧。

  • is  09:29 Jul 10, 2008 

    我觉得有一个观点是对的,xml文件真要复杂了,其实人也看不懂. 对于规模稍微大一点的xml,人肉眼观察已经是很不靠谱了.

留言 ↓

欢迎回来, (修改)

  • :em19:
  • :em01:
  • :em25:
  • :em09:
  • :em11:
  • :em00:
  • :em13:
  • :em08:
  • :em10:
  • :em03:
  • :em02:
  • :em05:
  • :em07:
  • :em16:
  • :em27:
  • :em14:
  • :em21:
  • :em20:
  • :em24:
  • :em18:
  • :em17:
  • :em06:
  • :em23:
  • :em12:
  • :em22:
  • :em15:
  • :em26:
  • :em04:

正在提交数据...

3 Pingbacks & Trackbacks