问题标签 [proto3]

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 投票
1 回答
428 浏览

protocol-buffers - protobuf : 定义一个 parentS <-> childrenS 关系

如何在原型中定义 parentS <-> childrenS 关系

这里的关键是我希望能够召唤孩子们

谢谢

0 投票
1 回答
4307 浏览

java - 地图列表使用 Mapstruct 从 Java POJO 到 Protobuf (proto3)

我正在尝试将一些 POJO 从 Java 映射到 Protobuf (proto3)。其中一些包含列表。虽然使用 POJO(例如 List)映射列表没有问题,但我得到了 UnsupportedOperationException。

示例List<Product>(这很有效):

示例List<String>(这不起作用):

此外,我有一些用于构建器的 Mapper:

0 投票
1 回答
665 浏览

java - 在 Java 中使用 proto3 时,对象中的长值未正确序列化和反序列化

我正在尝试使用 proto3 序列化和反序列化 java 中的对象。这是我在 proto 中的对象的样子

这是我在 java 中的序列化和反序列化的样子

我的输出如下

当我尝试使用 ByteString 和 utf-8 路由进行序列化和反序列化时,我哪里出错了?

谢谢!

0 投票
5 回答
32864 浏览

java - 检查是否在协议缓冲区 3 中设置了字段

我正在将一个 java 应用程序从协议缓冲区 2 迁移到协议缓冲区 3。

在 proto 2 中检查是否设置了一个字段,您有hasfield()一个生成示例 Java 代码的方法是:

但是在 proto 3 中,它已被删除。如何检查 proto 3 中是否设置了字段?

0 投票
1 回答
130 浏览

ruby-on-rails - 如何动态分配正确的消息来解码协议缓冲区消息?

嗨,我有一个适用于“事件”的数据流管道。这些事件是简单的协议缓冲区消息,例如:

然后客户端对这些消息进行序列化/编码并将它们推送到消息代理(例如Google Pub/Sub)。订阅者使用一条消息并尝试解码/反序列化(伪代码):

这些线路中的哪一条有效?两者,至少在我的 Ruby 代码中。我不知道我是否对如何使用协议缓冲区有概念上的误解,或者那是一个 ruby​​ 错误。

如果这是预期的行为,我怎么知道在运行时我应该对收到的消息进行解码?

编辑:

好的,解决方案似乎是https://developers.google.com/protocol-buffers/docs/techniques?csw=1#self-description

虽然我无法理解。有人可以提供一个如何在 ruby​​ 中实现它的例子吗?

0 投票
1 回答
57 浏览

c# - 如何说服GetProto吐出proto3格式

使用 Marc Gravell 出色的ProtobufNet,我们能够在 C# 中维护我们的类型,然后将它们导出为 .proto 文件,以便转换为客户所需的所有语言。

然而,我们希望使用 proto3 协议格式,它比似乎是标准的 proto2 更简单且不易出错。

环顾网络后,我们发现作者的这篇令人鼓舞的帖子似乎表明支持 proto3:https ://github.com/mgravell/protobuf-net/issues/187

但是,我们还没有找到任何有关 ProtobufNet 的文档,因此很难知道如何实现这一点。所以问题是,我们怎样才能GetProto为我们修饰的 C# 类型生成 proto3 兼容的输出

0 投票
2 回答
58 浏览

encoding - proto3 编码 - 结构与封送结构

我想知道在封送结构和封送封送结构之间的内存效率方面是否存在显着差异。

示例:假设我们有一个带有一些字段的结构 B。

常见的表示:

另一种方式:

其中 b 是一个编组的 B 结构。

一般来说,这是一个好习惯吗?任何效率影响?

谢谢, 埃拉德

0 投票
1 回答
2775 浏览

cmake - protoc v2.6.1 是否应该产生“预期的“必需”、“可选”或“重复”。

使用 Ubuntu 16.04 和 CMake,我正在尝试从 protobuf 文件创建一个共享库。CMakes protobuf_generate_cpp 正在生成 PROTO_SRCS 和 PROTO_HDRS。

我的系统上没有任何 google/protobuf/*.proto 文件,所以我下载了 3.6.1 并将它们移动到 /usr/local/include 中。我知道我使用的是 proto2,而 protoc 是版本 2,3.6.1 中的一些 *.proto 文件是 proto3,但是下面的文件(我正在使用的文件是 syntax="proto2"),所以我认为这应该没问题。

但是,我遇到了以下错误。

有人有想法吗?

0 投票
2 回答
62 浏览

c# - C# Proto3 类是不可变的吗?

我将引用类型(生成的 Proto3)传递给更新某些属性的方法。当方法返回时,属性已经恢复回来,就好像它不是通过引用传递或者是不可变的一样。

0 投票
1 回答
577 浏览

protocol-buffers - 如何在 proto3 中使用 oneof 作为类型?

给定一条看起来像这样的消息,

我想定义另一个使用 EventType oneof 作为类型的地图。准确地说,我想定义这样的东西

但是,这是行不通的。我得到的错误是