问题标签 [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 回答
591 浏览

python-3.x - python pb3序列化使用pb3

我正在使用 pb3 进行序列化:

我生成了一个x_pb2.py文件,但不知道如何使用它。

例如,如果我想将时间戳记为字节,我该怎么做?

0 投票
1 回答
1418 浏览

c++ - Protobuf ShortDebugString() 崩溃

我有以下原型:

我只是用 2 个值填充重复列表并尝试将其打印如下:

这会生成以下输出:

因此,ShortDebugString()触发一个没有任何有意义信息的异常。
我做错了什么,还是我需要在调用之前以某种方式触发序列化ShortDebugString()

callstack如果我让异常传播,这是 gdb :


编辑

这是CMakeLists.txt用于构建此项目的:

这是项目树:

0 投票
1 回答
503 浏览

protocol-buffers - protoc命令中--plugin参数的作用是什么

我目前在 Protobuf 部分工作,并使用 protoc 编译器将.proto文件编译为 java 类。在此命令中,我们有一个名为 ' plugin' 的参数用作--plugin=EXECUTABLE。我浏览了官方文档,上面写着

指定要使用的插件可执行文件。通常,protoc 在 PATH 中搜索插件,但您可以使用此标志指定不在路径中的其他可执行文件。此外,EXECUTABLE 可以是 NAME=PATH 的形式,在这种情况下,即使可执行文件自己的名称不同,给定的插件名称也会映射到给定的可执行文件。

但是我仍然无法获得利用此参数的确切用例。请帮忙。

参考:我浏览了https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.compiler.plugin

0 投票
0 回答
99 浏览

c# - 如何在 proto3 版本中将此 c# 类转换为 brotobuf?

我的 OperationResult.Cs 中有以下课程

现在我想像这样将这个类转换为名为 operationResult.proto 的 grpc 文件

我想将此文件用于 protobuf 中的每个服务,所以我想传递通用类型,如 c# 实现

0 投票
1 回答
1234 浏览

protocol-buffers - 在 gRPC/proto3 中设置 oneof 请求的更有效方法

在 PHP 客户端和 Python 服务器上拥有这个 proto3 模式:

为了设置来自 PHP 客户端的请求,我需要执行以下操作:

  1. 创建一个新的CAT
  2. 设置OneOfAnimalCAT
  3. 设置AnimalRequest.TypeAnimalOneOfAnimal

是否有 proto3 的架构,我可以直接将 aCATDOGobject 设置为我的AnimalRequest.TypeAnimal

0 投票
1 回答
2273 浏览

go - 由 grpc proto3 生成的 protobuff 中的蛇形案例样式

是否可以在 grpc 中将默认模型proto3从 CamelCase 更改为 snake_case?

例子 :

文件anyproto.proto

现在protoc -I. --go_out=plugins=grpc:. anyproto.proto命令生成这个模型:

文件 :anyproto.pb.go

我想改变风格requestStatusrequestMessagerequest_statusrequest_message

0 投票
1 回答
90 浏览

protocol-buffers - 我可以在 proto3 中定义一个有序的混合消息数组吗?

我想在 proto3 中定义一个不相关类(消息)的有序列表,如下所示:

  1. 青蛙
  2. 污垢
  3. 空气
  4. 电脑 1
  5. 电脑 2
  6. 政治

可能吗?如果 proto3 中存在基类(基本消息),我也可以忍受......不清楚 proto3 的功能集是否允许这样做。谢谢!

0 投票
1 回答
272 浏览

java - Protobuf 映射的排序

我在 proto3 中创建消息对象并使用自动生成的 java 类。我想为每个消息对象分配唯一的键。

在构造 的过程中Obj,它从一个微服务接收一个名为 的 proto 对象metaData,其定义如下:

基于metaData对象中的条目,unique_key通过遍历映射并对每个条目进行散列创建。(最多有 10 个条目keyFields

protobuf 文档,无法定义键的顺序。我应该如何保证metaData具有相同条目的不同对象keyFields生成相同unique_key

0 投票
1 回答
190 浏览

serialization - 如何使用 protobuf 反射来保证确定性序列化

Proto3 发行说明指出:

然而,确定性序列化不是跨语言规范的。由于未知字段,它在不同的构建中也不稳定,架构更改。需要规范序列化的用户,例如规范形式的持久存储、指纹识别等,应定义自己的规范化规范并使用反射 API 实现序列化程序,而不是依赖此 API。

我想要实现的是对 protobuf 消息进行确定性序列化,以携带加密签名。据我了解,由于序列化程序的差异,二进制数据可能会有所不同,并且签名将变得无效。

使用 protobuf 反射的方法是什么?

0 投票
1 回答
156 浏览

c++ - 我可以将 proto2 生成的代码存根与 libprotobuf3.x 一起使用吗?

我有一个使用 proto2 和 libprotobuf2.x 的遗留应用程序。还有另一个应用程序应用程序,我希望该应用程序与 proto3 通信。

我检查了可能的解决方案,并且该线程中的讨论 说 libprotobuf3.x 提供与 proto2 的兼容性。

这是否意味着我可以使用为 proto2 生成的相同 proto(带有 proto2)和相同的代码存根 pb.h/pb.cpp,而只需将我的旧应用程序与 libprotobuf3.x 链接起来,它会像一个魅力一样工作吗?

我不想将遗留原型更新为 proto3,因为它可能需要对遗留代码进行重大重构。