Protocol Buffers

Матеріал з Вікіпедії — вільної енциклопедії.
(Перенаправлено з Protobuf)
Перейти до навігації Перейти до пошуку

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;
}

Див. також[ред. | ред. код]

Примітки[ред. | ред. код]

  1. Why not just use XML? [Архівовано 22 жовтня 2010 у Wayback Machine.] (англ.)

Посилання[ред. | ред. код]