Sometimes you have configuration files or simple data files that you want to maintain by hand, in a text editor. There are dozen of reusable formats for this, but only a few of them really support hierarchical entries. You can argue that configuration files should stay relatively flat, but if you eventually run into a situation where you need hierarchy, you’ll be unhappy not to have it.
Protobuf Is Almost Streamable
Protobuf is a binary (non-textual) encoding format invented by Google. It has some nice properties and some less nice properties.1 But one that’s a little frustrating is that it’s almost a streamable format—that is, one where you can process data as it comes in, rather than waiting until you’ve read all of it.