Protocol buffers 如何用flatbuffer模式重写protobuf scheam?

Protocol buffers 如何用flatbuffer模式重写protobuf scheam?,protocol-buffers,flatbuffers,Protocol Buffers,Flatbuffers,例如,这是protobuf模式代码,我想用flatbuffer模式重写它们?代码是什么样的 message Xx { required uint32 id = 1; optional string name = 2; message Yy { optional string name = 1; } repeated Yy y = 3; } 谢谢你,我的兄弟。FlatBuffers内置了.proto翻译,请尝试flatc--prot

例如,这是protobuf模式代码,我想用flatbuffer模式重写它们?代码是什么样的

    message Xx {
    required uint32 id = 1;
    optional string name = 2;
    message Yy {
        optional string name = 1;
    }
    repeated Yy y = 3;
}

谢谢你,我的兄弟。

FlatBuffers内置了.proto翻译,请尝试
flatc--proto myschema.proto
,您将得到相应的.fbs文件

不过,在您的例子中,您有嵌套的消息定义,FlatBuffers不支持这种定义。因此,首先更改您的.proto,例如
消息Yy
被移动到
消息Xx
之外。还要给它一个包名。您将获得:

table Yy {
  name:string;
}

table Xx {
  id:uint (required);
  name:string;
  y:[Yy];
}

编辑:FlatBuffers现在甚至支持转换嵌套的.proto定义。

谢谢。但我建议FlatBuffers支持嵌套消息。因为ProtoBuffers中的现有消息有很多嵌套模式。当我编译源代码时,它与代码有关。编译器给出的错误是,表中只有非标量字段可能是“必需的”,我认为这是一个Bug???是吗?是的,这是一个bug,请在github上提交一个问题。现在,只需删除
(必选)
。好的,谢谢你,Aardapel,我现在就有一个关于github的问题。