Markus Wanner <mar...@bluegap.ch> writes: > Hi, > > I'd like to get some feedback regarding some ideas around the > serialization format used for storage and exchange of data in monotone. > Currently, we're mostly using basic_io (for revisions, manifests, certs, > AFAIK even for automate). > > Three things are bug me about basic_io: > > * while well readable, it's a custom format, not used anywhere else > > * it's flat and cannot represent nested structures > > * it cannot handle binary data (therefore monotone is spending quite a > bit of time converting between hex and raw data (mostly revision > ids)) > > > There are plenty of alternatives when considering a binary format: good > old ASN.1, Google Protocol Buffers, MessagePack, Blink, etc... > > Human readable alternatives (which would at least eliminate the first > two concerns) might be: JSON, YAML, or (bear with me) even XML. But for > hashes and such we need a canonical format. And nothing for those three > remains readable in any of their canonical forms that I've seen so far. > > > At the moment, the most important question seems to be: how much do you > value the human readable representation? How about a binary format that > you can easily transform to and from a human readable one?
Human readable makes testing and developing new features much easier. If we use binary, we will need a separate tool that translates that to readable, which is then another source of bugs (or the same source, just in a different place). Unless you are planning major work on monotone, it's not worth changing from basic_io. -- -- Stephe _______________________________________________ Monotone-devel mailing list Monotone-devel@nongnu.org https://lists.nongnu.org/mailman/listinfo/monotone-devel