web-dev-qa-db-fra.com

Tampons de protocole Google - JavaScript

Est-ce un bon choix d'utiliser Google Protocol Buffers en JavaScript ou est-il préférable de le faire avec JSON?

Aussi, si quelqu'un peut me donner un exemple simple sur la mise en œuvre de tampons de protocole en JavaScript. Parce que sur le site de Google, je pense que c'est très pauvre.

78
nikolakoco

[edit] L'implémentation open source de Google des tampons de protocole est disponible sur github


Le projet officiel Protobuf ne prend en charge que Java, C++ et Python. Pas Javascript.

Selon le wiki du projet, trois projets portent des tampons de protocole en Javascript.

Protobuf.js est à jour. protobuf-js n'a pas été mis à jour depuis deux ans, je préférerais donc Protobuf.js.

La question est toujours "Pourquoi"?: Protobuf peut être un peu plus petit, surtout quand beaucoup de valeurs numériques sont transférées, mais JSON est tout simplement le protocole le plus courant dans l'espace JS et probablement mieux supporté et plus facile à intégrer dans d'autres outils.

72
dmeister

Mise à jour (28/07/2016): La version 3.0.0 a été publiée - prenant en charge JavaScript et d'autres langues, également - en Outre certaines autres fonctionnalités.

Google a récemment ajouté le support alpha pour JS à protobufs: https://github.com/google/protobuf/releases/tag/v3.0.0-beta-2

Usage:

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

Captures d'écran de la documentation de la version:

enter image description here

enter image description here

30
AlikElzin-kilaka

Protobuf 3.0.0 est sorti: https://github.com/google/protobuf/releases/tag/v3.0.

Et il supporte JavaScript de manière native. Les informations de base sont dans l'annonce.

Nous allons l'examiner bientôt.

2
Ondrej Burkert

Essayez Protostuff !

J'ai eu un peu de difficulté à configurer mais je suis sûr que c'était plutôt mon problème. Vous pouvez sérialiser/désérialiser un message protobuff/protostuff vers/depuis JSON. Je suis au début de l’utilisation de ce logiciel, mais cela semble prometteur jusqu’à présent.

0
JeffSpicoli