https://developers.google.com/protocol-buffers/docs/overview 开发指南 欢迎来到protocol buffer 的开发者指南文档,一种语言无关、平台无关、扩展性好的用于通信协议、数据存储的结构化数据序列化方法。 本文档是面向计划将 protocol buffer 使用的到自己的Java、C++或 Python 应用程序中的开发者的。这个概览介绍了 protocol buffer,并告诉你如何开始,你随后可以跟随编程指导(https://developers.google.com/protocol-buffers/docs/tutorials )去深入研究 protocol buffer编码方式(https://developers.google.com/protocol-buffers/docs/encoding )。同时 API 参考文档(https://developers.google.com/protocol-buffers/docs/reference/overview )也是提供了这三种编程语言的版本,以及可以参考语言指南(https://developers.google.com/protocol-buffers/docs/proto )和样式指南(https://developers.google.com/protocol-buffers/docs/style )去编写 .proto 文件。 什么是 protocol bu ffer ProtocolBuffer 是用于结构化数据序列化的灵活、高效、自动的方法,类似 XML,不过它更小、更快、也更简单。你可以定义自己的数据结构,然后使用代码生成器生成的代码来读写这个数据结构。你甚至可以在无需重新部署程序的情况下更新数据结构。 他们如何工作 你首先需要在一个 .proto 文件中定义你需要做序列化的数据结构信息。每个 ProtocolBuffer信息是一小段逻辑记录,包含一系列的键值对。这里有个非常简单的 .proto 文件定义了个人信息: message Person { required string name = 1; required int32 id = 2; optional string email = 3; enum PhoneType { MOBILE = 0; HOME = 1; WORK = 2; } message PhoneNumber { required string number = 1; optional PhoneType type = 2 [default = HOME]; } repeated PhoneNumber phone = 4; } 有如你所见,消息格式很简单,每个消息类型拥有一个或多个特定的数字字段,每个字段拥有一个名字和一个值类型。值类型可以是数字(整数或浮点)、布尔型、字符串、原始字节或者其他 ProtocolBuffer 类型,还允许数据结构的多层次嵌套。你可以指定可选字段,必选字段和重复字段。你可以在(https://developers.google.com/protocol-buffers/docs/proto )找到更多关于如何编写 .proto 文件的信息。 一旦你定义...