Google Protocol Buffers - JavaScript

喜你入骨 提交于 2019-11-26 22:14:40

问题


Is it a good choice to use Google Protocol Buffers in JavaScript or is it better to do it with JSON?

Also if someone can give me a simple example about Protocol Buffers implementation in JavaScript. Becauseon Google's site I think it's very poor.


回答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.




回答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:




回答3:


Protobuf 3.0.0 is out: https://github.com/google/protobuf/releases/tag/v3.0.0

And it support JavaScript natively. The basic information is in the announcement.

We are going to look into it soon.




回答4:


Try Protostuff!

I had a bit of hard time configuring but I'm sure that was more of my issue. You can serialize/deserialize a protobuff/protostuff message to/from JSON. I'm at the early stages of using this but it looks promising so far.



来源:https://stackoverflow.com/questions/6912981/google-protocol-buffers-javascript

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!