如何打开/查看.proto文件扩展名

时间:2018-07-16 09:38:23

标签: protocol-buffers proto

我正在从事一个开源项目(https://github.com/google/science-journal/tree/master/OpenScienceJournal)。使用此应用程序,我可以记录一个实验。记录的实验以.proto扩展名存储。我试图编译它们以生成类,但是失败了。

有没有办法打开这种文件?

1 个答案:

答案 0 :(得分:2)

在协议缓冲区中,.proto文件通常是 基于文本的模式DSL,用于描述消息而不是数据;但是,可能确实是这些文件确实包含二进制数据(只是……不寻常)。仔细检查文件:如果它们看起来像:

message Foo {
   int32 bar = 1;
   // etc
}

然后是模式;如果它看起来像二进制文件,则可能是数据。

关于如何阅读它:最简单的选择是已经拥有该模式。如果您不这样做,那么数据在技术上是模棱两可的-您可以通过检查数据来对其进行逆向工程,但可能会很尴尬。您可能会发现诸如https://protogen.marcgravell.com/decode之类的工具可用于此目的。

一旦有了模式和数据,您将:

  • 根据架构在所选平台中生成必要的存根(https://protogen.marcgravell.com/在这里可能有用)
  • 然后:针对所选平台使用protbuf库的“反序列化” API将数据加载到对象模型中
  • 最后:检查现在已填充数据的对象模型