Protocol Buffers — формат серіалізації даних, запропонований корпорацією Google, як альтернатива XML. Оригінальна реалізація Google для C++, Java та Python доступна під вільною ліцензією. Google стверджує, що protocol buffers в декілька раз збільшує швидкість обробки даних та суттєво зменшує обсяги передаваної інформації[1].
Приклад використання
message Point {
required int32 x = 1;
required int32 y = 2;
optional string label = 3;
}
message Line {
required Point start = 1;
required Point end = 2;
optional string label = 3;
}
message Polyline {
repeated Point point = 1;
optional string label = 2;
}
Це компілюється за допомогою protoc. Потім C++ програма може це використати якось так:
#include "polyline.pb.h" // згенеровано викликом protoc polyline.proto
Line* createNewLine(const std::string& name) {
Line* line = new Line;
line->mutable_start()->set_x(10);
line->mutable_start()->set_y(20);
line->mutable_end()->set_x(30);
line->mutable_end()->set_y(40);
line->set_label(name);
return line;
}
Polyline* createNewPolyline() {
Polyline* polyline = new Polyline;
Point* point1 = polyline->add_point();
point1->set_x(10);
point1->set_y(10);
Point* point2 = polyline->add_point();
point2->set_x(10);
point2->set_y(10);
return polyline;
}
Див. також
Примітки
Посилання