使用protobuf的一个文本文件configuraton(using protobuf as a

2019-09-24 01:57发布

我最近遇到的所有配置文件使用文本protobuf的定义来定义一个非常大的关键项目。 配置文件是为了是人类可读和可编辑。

例如

message ServerSettings {
  required int32 port = 3022;
  optional string name = "mywebserver";
}

个人而言,我发现这个幽默。 但是,它实际上是一个合理的保持它,简单的技术,或明确鲁钝?!

换句话说,有没有这个掌握实际问题?

Answer 1:

如果是这样的文本原型如果格式,然后......不管结果如何,我猜。 如果成功的话,那是任何其他的序列化格式为合理。

如果意在原模式,那么它是非法的(在=后的值被用来作为场数)。

JSON或XML可能更典型的,但只要它的作品不是“鲁钝”。 所以,最终的问题是:它的工作原理?



Answer 2:

我认为这是相当聪明。 我猜测他们将其穿过protoc --encode,生成二进制的是什么是真正解析。

优点:1.代码生成相比,键/值来解析结构2.类型验证3.更健壮的配置文件,因为它支持结构,联合,地图和数组4.现在的配置数据是可序列化的这意味着它能够容易地露出到RPC或IPC接口。

缺点:1.语法可以是用于映射/阵列有点冗长。 2.它要求要在目标上安装以及libprotobuf.so protoc如果你是跟紧内存限制的系统上。



文章来源: using protobuf as a textual configuraton file