问题标签 [protocol-buffers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
2359 浏览

python - 有任何使用协议缓冲区的经验吗?

我只是在查看有关 Google协议缓冲区数据交换格式的一些信息。有没有人玩过代码,甚至围绕它创建了一个项目?

我目前在 Python 项目中使用 XML 来处理在文本编辑器中手动创建的结构化内容,我想知道关于 Protocol Buffers 作为面向用户的输入格式的一般意见是什么。速度和简洁的好处似乎确实存在,但在实际生成和处理数据时有很多因素。

0 投票
15 回答
134837 浏览

serialization - Biggest differences of Thrift vs Protocol Buffers?

What are the biggest pros and cons of Apache Thrift vs Google's Protocol Buffers?

0 投票
2 回答
2128 浏览

java - 语言特定数据结构的 protobuf 序列化

使用谷歌的Protocul Buffers,我有一个已经用 Java 编写的服务,它已经有自己的数据结构。我想使用 pb 来传递消息,我正在寻找一种方法将我在 Java 中拥有的现有数据结构序列化为 pb。我可以从头开始定义 pb 中的所有数据结构,这可能是正确的方法,但我太懒了。那么,假设我有一个 Java (或其他支持的语言)的 Person 类或一个具有数十个属性的 Plane 类,有没有办法将该类序列化为 pb?我可以有一个平面类型的 pb 属性吗?(当 Plane 不是 pb 时,它是一个 Java 类)

0 投票
8 回答
63999 浏览

java - Thrift、Protocol Buffers、JSON、EJB、其他的性能比较?

我们正在研究传输/协议解决方案,并且即将进行各种性能测试,所以我想我会与社区核实他们是否已经这样做了:

有没有人对简单的回显服务进行服务器性能测试,以及比较 Linux 上的 EJB3、Thrift 和协议缓冲区的各种消息大小的序列化/反序列化?

主要语言将是 Java、C/C++、Python 和 PHP。

更新:我仍然对此非常感兴趣,如果有人做过任何进一步的基准测试,请告诉我。此外,非常有趣的基准测试显示压缩 JSON 的性能与 Thrift/Protocol Buffers 相似/更好,所以我也将 JSON 扔进了这个问题。

0 投票
8 回答
9168 浏览

c++ - C++ 序列化性能

我正在构建一个分布式 C++ 应用程序,该应用程序需要对在不同进程和计算机之间传递的简单数据结构进行大量序列化和反序列化。

我对序列化复杂的类层次结构不感兴趣,但更多的是发送带有一些简单成员(如数字、字符串和数据向量)的结构。数据向量通常可以是许多兆字节。我担心基于 text/xml 的方法太慢了,我真的不想自己写这个,因为字符串编码和数字字节序等问题会使它比表面上看起来更复杂。

我一直在研究协议缓冲区和 boost.serialize。根据文档,协议缓冲区似乎非常关心性能。从某种意义上说,Boost 似乎更轻量级,因为您没有用于指定数据格式的外部语言,我觉得这对于这个特定项目非常方便。

所以我的问题归结为:有人知道对于我上面描述的典型用例,boost 序列化是否很快?

此外,如果还有其他可能适合此的库,我很乐意听到它们。

0 投票
2 回答
1503 浏览

c# - 生成协议缓冲区定义

我有大量专有模式的 XML 文件 - XML 文件定义二进制通信协议(消息结构)。

我想利用 Google 的协议缓冲区技术。

我正在使用现有代码将 XML 文件加载到对象模型中(在内存中)。我想从该对象模型生成一个 .proto 文件。

所以基本上我正在寻找的是代码/库(在 C#/.NET 中),它将 .proto 文件格式表示为对象模型,并且可以将该对象模型保存到 .proto 文件中。

我看了一下 Jon Skeet 的 dotnet-protobufs,我想我明白它的作用(根据 .proto 文件生成 c# 代码)

但是,我不知道我是否可以将它用于我的项目(它可能有 .proto 格式的对象模型,但可能只有代码可以解析这种格式而不是写出来)

0 投票
11 回答
37199 浏览

google-analytics - 如何解码谷歌 gclids

现在,我意识到对此的最初反应可能是“你不能”或“使用分析”,但我会继续希望有人比这更有洞察力。

带有“自动标记”的 Google 广告词会在链接上附加一个“gclid”(可能是“google click id”),将您发送到广告网站。它出现在网络日志中,因为它是一个查询参数,分析使用它来将该访问与广告/活动联系起来。

我想做的是从 gclid 中提取任何有用的信息,以便对我们的流量进行我们自己的分析。原因如下:

  • 统计数据是不完善的,但如果我们对它们进行整理,我们就会确切地知道我们做了什么假设,以及它们是如何计算的。
  • 我们可以将数据与其他数据联系起来,并生成更准确的转化​​率统计数据。
  • 我们不必依赖 javascript 进行转换。

现在很明显 gclid 是 base64 编码的(或一些接近的变体),它的某些部分比其他部分变化更大。除此之外,我无法确定它与什么有关。

有没有人对我如何解码这个有任何见解,或者是否有人已经将 gclids 关联回了compaigns 甚至帐户​​?

我和谷歌的几个人谈过,尽管他们有“不作恶”的座右铭,但他们完全不愿意讨论泄露这些信息的可能性,即使是在保密协议下。似乎他们喜欢他们对我们的网络统计数据的垄断。

0 投票
2 回答
5769 浏览

c# - 你能用 Google 的 Protocol Buffer 格式表示 CSV 数据吗?

我最近发现了协议缓冲区,并想知道它们是否可以应用于我的特定问题。

基本上我有一些 CSV 数据需要转换为更紧凑的格式进行存储,因为其中一些文件是几个 gig。

CSV 中的每个字段都有一个标题,并且只有两种类型,字符串和小数(因为有时有很多有效数字,我需要以相同的方式处理所有数字)。但是每个文件的每个字段都有不同的列名。

除了捕获原始 CSV 数据外,我还需要能够在保存之前向文件添加额外信息。我希望通过处理不同的文件版本来证明这一点。

那么,是否可以使用协议缓冲区来捕获随机数量的随机命名的数据列,例如 CSV 文件?

0 投票
5 回答
13264 浏览

c# - 在协议缓冲区中表示 System.Decimal 的最佳方式是什么?

这个问题开始,在协议缓冲区中表示 System.Decimal 对象的最佳方式是什么?

0 投票
1 回答
1745 浏览

messaging - Google 的协议缓冲区是否用于大规模生产应用程序?

Google 的Protocol Buffers是否用于生产中的大规模生产应用程序?

使用它是什么体验?