JavaScript的协议缓冲区?

sgt*_*gtz 22 javascript gwt protocol-buffers

有没有办法在JavaScript中执行协议缓冲?

为什么选择.js?

如果您暂时考虑科学要求,可能会弹出一些情况,您可能希望将大量数据发送到客户端.使用CRUD风格时,您使用的内容并不重要.对于科学的东西,它确实很重要(至少我认为它确实如此).

权衡:

  • protobuffs可以很好地平衡紧凑性,序列化和反序列化速度.

  • 基于文本的协议(xml/json)具有更大的消息大小...但是使用javascript我不知道哪个更有效.

参考:

社区提供的其他参考资料(更多背景见下文):

Tho*_*yer 13

谷歌通过他们的Closure库大量使用JS(GMail等)中的Protocol Buffers,生成带有(不幸的是非开源)修改的JS代码protoc(它可能必须在开源之前被移植protoc扩展中) ).

Apache Wave(其客户端 webapp使用GWT构建)也使用Protocol Buffers与服务器通信,通过反映由protoc(这是PST,又名protobuf-stringtemplate,子项目)生成的Java类生成Java代码.
以前,Wave正在使用protostuff(我不知道为什么他们改用他们自己的解决方案,我怀疑PST来自最初的Google Wave正在使用的,而protostuff只是转向开源的中间步骤) .

作为一个方面说明,我开始探索在浏览器端使用Protocol Buffers前一阵子:http://blog.ltgt.net/exploring-using-protobuf-in-the-browser/HTTP://blog.ltgt. net/using-protobuf-client-side-with-gwt以及http://code.google.com/p/protobuf-gwt/上的一些几乎可以工作的代码,您可能想要复活.

最后,正在进行的工作是使GWT RequestFactory代理与生成的服务器端Java类兼容protoc(并且您可以使用protocWave的PST 的扩展或类似方法来生成RequestFactory代理).如果你在服务器端一直使用构建器(这不是Protocol Buffers Java API的设计方式),那么它应该是可能的.


Mar*_*ell 8

从历史上来说,使用二进制文件的javascript工作很痛苦,这可能部分解释了相对缺乏工具 - 但是使用javascript类型的数组现在可能会轻松得多.我有点同意,如果你必须得到相同数量的数据(通过某种格式),使用更少的带宽是一个加分 - 但在开始任何事情之前,你需要检查带宽/处理是一个真正的瓶颈(如果带宽) :你先试过gzip/deflate吗?

我是protobuf的粉丝 - 我很高兴看到更强大的浏览器端工具,但json无处不在,你需要一个令人信服的理由挑战现状.也; 想想"jsonp".


aga*_*ian 7

我一直在寻找javascript的protobuf.这里有一个项目:https: //github.com/dcodeIO/ProtoBuf.js