Буферы протокола Google - JavaScript - PullRequest
76 голосов
/ 02 августа 2011

Является ли хорошим выбором использование буферов протокола Google в JavaScript или лучше сделать это с JSON?

Также, если кто-то может дать мне простой пример реализации протокола Buffers в JavaScript. Потому что на сайте Google я думаю, что он очень плохой.

Ответы [ 4 ]

72 голосов
/ 03 августа 2011

[править] Реализация буферов протокола с открытым исходным кодом Google доступна на github


Официальный проект protobuf поддерживает только Java, C ++ и Python.Не Javascript.

Согласно вики проекта, существует три проекта, портирующих буферы протокола на Javascript.

Protobuf.js обновлен.Protobuf-js не обновлялся в течение двух лет, поэтому я бы предпочел Protobuf.js.

По-прежнему остается вопрос «Почему?»: protobuf может быть немного меньше, особенно когда передается много числовых значений, но JSON является просто более распространенным протоколом в пространстве JS и, вероятно, лучше поддерживается и его легче интегрировать в другие инструменты.

30 голосов
/ 12 января 2016

Обновление (28/7/2016): Опубликован выпуск 3.0.0 - с поддержкой Javascript и других языков - в дополнение к некоторым другим функциям.

Google недавно добавил альфа-поддержку JS к protobufs: https://github.com/google/protobuf/releases/tag/v3.0.0-beta-2

Использование:

protoc -I=$SRC_DIR --js_out=$DST_DIR $SRC_DIR/addressbook.proto

Скриншоты из документации к выпуску:

enter image description here

enter image description here

2 голосов
/ 29 июля 2016

Protobuf 3.0.0 вышел: https://github.com/google/protobuf/releases/tag/v3.0.0

И он поддерживает JavaScript изначально. Основная информация в объявлении.

Мы скоро разберемся с этим.

0 голосов
/ 20 декабря 2012

Попробуйте Protostuff !

У меня были трудности с настройкой, но я уверен, что это была моя проблема. Вы можете сериализовать / десериализовать сообщение protobuff / protostuff в / из JSON. Я на ранних стадиях использования этого, но пока это выглядит многообещающим.

...