Google Protocol Buffers: JavaScript Example
Is it a good choice to use Google Protocol Buffers in JavaScript or is it better to do it with JSON?
Also it'd be great if someone can give me a simple example about Protocol Buffers implementation in JavaScript. The documentation on the Google's site is scarce.
Solution 1:
[edit] Google's open source implementation of protocol buffers is available on github
The official protobuf project support only Java, C++, and Python. Not Javascript.
According to the Wiki of the project, there are three projects porting protocol buffers to Javascript.
- Protobuf.js: https://github.com/dcodeIO/ProtoBuf.js
- protobuf-js: http://code.google.com/p/protobuf-js/
- protojs: http://github.com/sirikata/protojs
Protobuf.js is up-to-date. protobuf-js has not been updated for two years, so I would favor Protobuf.js.
The question still is "Why"?: protobuf may be a bit smaller, especially when a lot of numeric values are transferred, but JSON is simply the more common protocol in the JS space and probably better supported and easier to integrate into other tools.
Solution 2:
Update (28/7/2016): Release 3.0.0 was published - supporting Javascript and other languages as well - in addition to some other features.
Google have recently added alpha support for JS to 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
Screenshots from the release documentation: