协议缓冲区

协议缓冲区是与语言无关、与平台无关的可扩展机制,用于序列化结构化数据。
message Person {
  optional string name = 1;
  optional int32 id = 2;
  optional string email = 3;
}

一个 proto 定义。

// Java code
Person john = Person.newBuilder()
    .setId(1234)
    .setName("John Doe")
    .setEmail("[email protected]")
    .build();
output = new FileOutputStream(args[0]);
john.writeTo(output);

使用生成类来持久化数据。

// C++ code
Person john;
fstream input(argv[1],
    ios::in | ios::binary);
john.ParseFromIstream(&input);
id = john.id();
name = john.name();
email = john.email();

使用生成类来解析持久化数据。

什么是协议缓冲区?

协议缓冲区是 Google 的语言中立、平台中立、可扩展的机制,用于序列化结构化数据 - 类似于 XML,但更小、更快、更简单。您只需定义一次希望如何构建数据,然后即可使用特殊生成的源代码轻松地将结构化数据写入和读出各种数据流,并使用各种语言。

选择您最喜欢的语言

协议缓冲区支持 C++、C#、Dart、Go、Java、Kotlin、Objective-C、Python 和 Ruby 中生成的代码。使用 proto3,您还可以使用 PHP。

我如何开始?

  1. 下载并安装协议缓冲区编译器。
  2. 阅读概览
  3. 尝试教程以了解您选择的语言。