Ответ
Да, есть опыт работы с protobuf (Protocol Buffers). Это эффективный бинарный формат сериализации данных от Google. В Go для работы с protobuf используется библиотека google.golang.org/protobuf.
Пример использования:
syntax = "proto3";
message Person {
string name = 1;
int32 age = 2;
}
// Генерация кода:
// protoc --go_out=. person.proto
// Использование в коде:
p := &Person{
Name: "John",
Age: 30,
}
data, err := proto.Marshal(p)
// ... unmarshal, обработка ошибок
Основные преимущества:
- Компактный размер данных
- Быстрая сериализация/десериализация
- Строгая типизация
- Поддержка генерации кода для разных языков
Работал с gRPC (который использует protobuf), знаю нюансы версионирования схем и миграции.