3 ms·
Protobufs have a text representation.
by zmj 6y ago
Protobufs have a text representation.
- andrewg 6y agoYes indeed - it's actually pretty nice. You just define a message for your configuration schema: message Config { repeated Server server = 1; } message Server { string address = 1; int32 port = 2; bool standby = 3; } And then you use the text representation in a config file: # main instance server { address: "127.0.0.1" port: 4567 } # backup instance server { address: "127.0.0.1" port: 9876 standby: true } And load it into a message instance: Config config; google::protobuf::TextFormat::ParseFromString(input, &config);
- kortex 6y agoWow, I use pb's a ton and didn't know this. I'd upvote this twice if I could! It looks oddly like HCL. I wonder...
- atombender 6y agoUnfortunately, it is undocumented and has no formal spec, and this appears to be intentional, with no plans for improvement: https://github.com/protocolbuffers/protobuf/issues/3755 https://github.com/protocolbuffers/protobuf/issues/3755.
- quietbritishjim 6y agoAs of protobuf 3 they also have a canonical JSON representation, which you can access from all the supported languages.