Google Protocol Buffers - JavaScript

nik*_*oco 78 javascript protocol-buffers

在JavaScript中使用Google Protocol Buffers是一个不错的选择还是使用JSON更好?

此外,如果有人可以给我一个关于JavaScript中的Protocol Buffers实现的简单示例.因为谷歌的网站我觉得它很差.

dme*_*ter 73

[编辑]谷歌的协议缓冲区的开源实现可以在github上找到


官方protobuf项目仅支持Java,C++和Python.不是Javascript.

根据该项目的Wiki,有三个项目将协议缓冲区移植到Javascript.

Protobuf.js是最新的.protobuf-js两年没有更新,所以我赞成Protobuf.js.

问题仍然是"为什么"?:protobuf可能会小一点,特别是当传输大量数值时,JSON只是JS空间中更常见的协议,可能更好地支持并更容易集成到其他工具中.

  • @Why:因为你把一个消息和服务方法写成proto,你可以免费得到代码的骨架?客户端/服务器端的序列化和反序列化. (18认同)
  • 原因:在任何其他情况下使用protobuf的原因相同.不要忘记浏览器现在有WebSocket.此外,桌面应用程序可以用JS for Windows 8和Node中的应用程序(包括服务器)编写. (13认同)
  • 毫无疑问,JSON更适合大多数情况.但是在我的情况下,消息发送者不在我的控制之下,并且它序列化为protobuf消息,因此我们需要解析来自javascript的消息. (10认同)
  • 如果您的系统的API已经有其他二进制/ protobuf客户端,例如Android或iOS设备,那么将现有的原型API用于Javascript Web客户端比构建提供JSON的API的第二个副本更自然,只是为了支持一个网页. (5认同)
  • Code Climate对[protobuf优于JSON的好处]有很好的写作(http://blog.codeclimate.com/blog/2014/06/05/choose-protocol-buffers/) (4认同)

Ali*_*aka 32

更新(2016年3月28日): 发布3.0.0版本 - 除了一些其他功能外,还支持Javascript和其他语言.

Google最近将JS支持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
Run Code Online (Sandbox Code Playgroud)

发布文档的屏幕截图:

在此输入图像描述

在此输入图像描述


Ond*_*ert 6

Protobuf 3.0.0 已发布: https ://github.com/google/protobuf/releases/tag/v3.0.0

并且它原生支持 JavaScript。基本信息以公告为准。

我们很快就会调查此事。