草庐IT

protobufs

全部标签

c# - 如何使用 protobuf-net 处理 .proto 文件

我已经开始使用protobuf-net库在我维护的一些程序之间进行通信。我还能够将消息从C#解码为Ruby。我的ruby​​ProtoBuflib使用.proto文件生成ruby​​代码。为了必须在尽可能少的地方进行更改,我想让protobuf-net使用相同的.proto文件。查看protobuf-net文件夹,有一个名为ProtoBufGenerator的Dll和protobufexe,但我找不到任何关于我是否可以通过这种方式使protobuf-net工作的说明。这可能吗? 最佳答案 查看MarcGravell的博客,thisp

javascript - protobuf.js 将 proto 文件转换为 JSON 描述符,重复会丢失

我正在使用Protobuf.js构建一个节点包,其中包含我们的协议(protocol)并为该包中定义的ProtoMessages提供编码和解码功能。我可以使用.proto文件(.proto文件的加载发生在运行时),但由于模块需要在客户端可用,我无法将.proto文件打包到我解析的.js文件中(使用browserify构建),我需要使用一种方法,在build.js中启用打包。输入JSON描述符。varjsonDescriptor=require("./awesome.json");//exemplaryfornodevarroot=protobuf.Root.fromJSON(jsonD

Golang protobuf 动态消息

我正在编写一个gotcp客户端来接收来自服务器的事件。服务器响应是以这种方式构造的字节:起始字节字节长度命令字节地址1字节地址2字节地址3字节地址4字节错误字节参数1字节...N.参数N字节我可以为此使用Protobufs吗?如果是,我应该如何构建消息?亲切的问候,于尔根 最佳答案 答案是:可以。它必须看起来像这样:原型(prototype)文件:syntax="proto3";messageEvent{bytesstart=1;byteslength=2;...repeatedbytesparam=9;}你的go结构将是:type

go - go 的 protobuf 实现是否支持 DynamicMessage?

具体来说,我想序列化一个没有相应.proto文件的Go结构,然后反序列化它(也没有.proto文件)并以编程方式查询和提取其字段。Asearch的golang实现没有发现等效的功能。这是否受支持?(虽然encoding/gob支持这个,但我需要多语言兼容性) 最佳答案 作者说这不受支持:https://github.com/golang/protobuf/issues/106 关于go-go的protobuf实现是否支持DynamicMessage?,我们在StackOverflow上找

go - 无法识别的导入路径 "google/protobuf"

我正在尝试设置链码环境并开始学习开发链码,我遵循了设置步骤here并测试了我提到的设置环境here当我尝试将Hyperledgershim添加到我的环境时(如here所述),我收到以下错误:packagegoogle/protobuf:无法识别的导入路径“google/protobuf”我已经安装了protobuf。protoc--version命令给我libprotoc2.6.1作为输出。谁能告诉我哪里出错了。 最佳答案 建立开发环境的说明cited在最初的问题中很清楚Go1.6或更高版本是prerequisite.根据上面的@j

go - 将 protobuf 枚举消息发送到 grpc 服务器

给定一个messageFoo{enumState{STATE1=0;STATE2=1;STATE3=2;}}和一个grpc服务定义rpcMethod(streamFoo)returns(Empty){}将此发送到grpc服务器的gogrpc客户端代码是什么样的?澄清一下,假设我有一个streamClient.Send()。我将什么传递给Send()?我如何构建枚举? 最佳答案 您定义了State但Foo中没有State字段。试试这个syntax="proto3";optiongo_package="enumpb";messageFo

go - 如何使用 golang 在编译时不知道其类型的情况下解析 protobuf3 消息?

这是一个场景:您正在golang中实现一个通用组件,该组件可以与任何类型的原型(prototype)消息(二进制序列化)一起使用,并且需要在编译时不知道其类型的情况下反序列化二进制原型(prototype)数据。例如,我在编写一个通用的kafkajsonarchiver时遇到了这个问题,该组件将:从配置中接收消息类型(字符串)和kafka主题的名称需要在运行时创建二进制->内存反序列化器和内存->json序列化器。如何从消息名称中获取二进制字节的反序列化器? 最佳答案 golang原型(prototype)库有一个用于此目的的辅助实

go - 如何将 prpBytes(描述​​中的链接 src)(ProposalResponsePayload protobuf 消息)反序列化为原始对象

我对plugin.go中的方法有疑问,发现here在Hyperledger结构库中。//Endorsesignsthegivenpayload(ProposalResponsePayloadbytes),andoptionallymutatesit.//Returns://TheEndorsement:Asignatureoverthepayload,andanidentitythatisusedtoverifythesignature//Thepayloadthatwasgivenasinput(couldbemodifiedwithinthisfunction)//Orerroro

go - golang protobuf编译中指定基础包

我有golang包github.com/user/protoapp,在这个包中我有包含protobuf文件的文件夹proto。github.com/user/protoapp|-proto|-proto/app1|-proto/app2app1和app2中的proto文件都有对应的包app1和app;来自proto/app1的Proto文件正在从proto/app2导入文件,如import"app2/messages.proto";aftercompillationinapp1.pb.go变成了importapp2并且protoapp编译失败。如何使*.pb.go文件中的导入成为imp

go - 如何将 row.Scan() int32 转换为 Golang gRPC protobuf Enum 字段?

//agent.protomessageAgent{Permissionpermission=1;google.protobuf.Timestampborn_time=2;messagePermission{Typetype=1;enumType{KILLNONE=0;KILLALL=1;DANCE=2;}}}然后将SQL行扫描到代理protobuf结构中://main.govaraproto.Agent........row.Scan(&a.Permission.Type,...)对于默认类型,该权限类型存储为简单的MariaDBINT()value=0。所以,我不能直接扫描它。因此