Google Protocol Buffers 2.1.0

Вийшла нова версія бібліотеки для серіалізації структурних даних Google Protocol Buffers(або просто Protocol Buffers).

Бібліотека складається з двох частин — компілятора Proto файлів та власне самої бібліотеки. За допомогою Protocol Buffers можна описати структуру даних, з якої будуть згенеровані класи на Java, Python чи C++.

Приклад такого опису:

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

  enum PhoneType {
    MOBILE = 0;
    HOME = 1;
    WORK = 2;
  }

  message PhoneNumber {
    required string number = 1;
    optional PhoneType type = 2 [default = HOME];
  }

  repeated PhoneNumber phone = 4;
}

Особливістю згенерованих класів є їхнє внутрішнє представлення. Cеріалізовані дані які були збережені в Java без проблем відтворяться в Python. Бібліотека контролює процес серіалізації, завдяки чому бінарне представлення серіалізованих структур є дуже компактним.

Проект цікавий тим що Google інтенсивно використовує Protocol Buffers для внутрішніх цілей та у більшості своїх проектів для комунікації між під системами. Згідно документації на Google описано 48,162 типів повідомлень в 12,183 Proto файлах.

Серед важливих змін нової версії є наступні:

Більш ефективна компресія простих типів

Можливість використання констант

Оновлено включений Google Test до версії 1.3.0

По замовчуванню включено optimize_for = SPEED

Можна оголошувати поля як «застарілі» (deprecated)

Більш детальний список змін можна отримати з заміток по релізу.

Завантажити компілятор та бібліотеку можна з офіційного сайту.

Протягом тижня на Розробці має з'явитись туторіал по Google Protocol Buffers ;)

Коментарі 4

aleks_raiden - 31 травня 2009, 12:47

О, супер! дуже чакаю! якраз розбираюсь з протоколом. Цикавить розриття темы GPB як альтернативи звичайному AJAX/XMLHTTPRequest — тобто звести протокол обмину миж клиентом в браузери и сервером до обмину меседжами по GPB

zenyk - 02 червня 2009, 14:04

перша частина майже готова :)

це буде ввідний туторіал по бібліотеці

щодо альтернативи AJAX — чесно кажучи, я сильно сумніваюсь, так як існують клієнти лише до Java, Python, C++ (мови які використовуються на Google)

Бібліотека внутрішньо відносно складна. Клієнт на PHP десь мелькав, але про JavaScript клієнтів навіть нічого не чув

aleks_raiden - 02 червня 2009, 14:13

Та не, треби просто дивитись на стринки з портами.

# Action Script: code.google.com/p/protobuf-actionscript3/

# Action Script: code.google.com/p/protobuf-actionscript/

# Action Script: code.google.com/p/protocol-buffers-actionscript/

# Javascript: code.google.com/p/protobuf-js/

# PHP: code.google.com/p/pb4php/

крим того е ще багато, яких нема в оф документации.

zenyk - 02 червня 2009, 17:00

Цікаві думки про Google Protocol Buffers з Комп'ютерного Обозренія.

Коментувати
© 2009 - 2020, Розробка - соціальна ІТ спільнота.
Контакти: info@rozrobka.com
Правила користування