在运行时动态解析 .proto 文本文件以生成描述符

Dynamic parsing of .proto text file at runtime to generate descriptors

我目前正在研究 Google 协议缓冲区,需要生成动态消息。我已经定义了如下所示的 .proto 文件。

message TSInbound
{
  string id = 1;
  map<string,string> state = 2;
  map<string,string> reading =3;
}

据我所知,我可以使用文件描述符集来创建动态消息。但是,这将涉及使用编译器生成 desc 文件。我想在不编译 .proto 文件的情况下生成描述符。有没有一种方法可以使用自定义的 .proto 文件而不使用 protoc 来动态创建消息?

我想你在问:"Is there a way to dynamically parse text .proto files at runtime to get descriptors."

.proto 解析器是用 C++ 编写的。它可作为库 libprotoc.so 使用。从理论上讲,您可以围绕它编写一个 JNI 包装器以在运行时进行解析。但是,.proto 文件没有(官方)纯 Java 解析器。