Обзор 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
Person john = Person.newBuilder()
    .setId(1234)
    .setName("John Doe")
    .setEmail("jdoe@example.com")
    .build();
output = new FileOutputStream(args[0]);
john.writeTo(output);

Рисунок 2. Использование сгенерированного класса для сохранения данных.

// Код на C++
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. Попробуйте руководство для выбранного вами языка.