Protocol Buffers

Protocol Buffers 是一種語言無關、平臺無關的可擴充套件機制,用於序列化結構化資料。

什麼是 Protocol Buffers?

Protocol Buffers 是 Google 的語言中立、平臺中立、可擴充套件的機制,用於序列化結構化資料——可以將其視為 XML,但更小、更快、更簡單。您只需定義一次您希望資料如何結構化,然後就可以使用特殊的生成原始碼,輕鬆地將結構化資料寫入和讀取到各種資料流中,並使用多種語言。

選擇您喜歡的語言

Protocol Buffers 支援 C++、C#、Dart、Go、Java、Kotlin、Objective-C、Python 和 Ruby 中生成的程式碼。使用 proto3,您還可以與 PHP 協同工作。

示例實現

edition = "2024";

message Person {
  string name = 1;
  int32 id = 2;
  string email = 3;
}

圖 1. proto 定義。

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

圖 2. 使用生成的類來持久化資料。

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

圖 3. 使用生成的類來解析持久化資料。

如何開始?

  1. 下載並安裝 protocol buffer 編譯器。
  2. 閱讀概述
  3. 嘗試您選擇語言的教程