serialization format

Markus Wanner <[email protected]> Mon, 4 Apr 2016 16:49:09 +0200
Newsgroups gmane.comp.version-control.monotone.devel
Message-ID <[email protected]>
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?

I appreciate your feedback.

Regards

Markus Wanner

_______________________________________________
Monotone-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/monotone-devel
signature.asc (application/pgp-signature, 1.5 KB)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQQcBAEBCAAGBQJXAn7pAAoJEOhoLRs/MemzC6Ef/jdOgeABXnhTQOHW+XEm7IxJ
IcU2Ude1DTCZT1MxwrShq3DopzIbcERW8meChpBdODqsSrmPEeLX655JyqBdvryK
uYXYoytFFhUXV7ecN2Qd+IIV8Hy4qX5Y6qkfDcvW6k2BJ2S357aAFanaR3f1Q0HH
IQcVnM6QdxIYO2tr/tcS0t3aFncywOiKxF20sMkljSUYpJZHAH7UtgprAroK9vGc
pHuQgyB+2hiPH+ZQj4Bno/dHfoDsX2YnyjexcE3np+x98aMaqcZ6A2DB/zY7Nrqj
lTYa7sJDm9zRe9H0iaOqEA7hNuoKBijjMFMcBF19SshyCLfRMELChFKa1NR2zJ7M
DLCAOsvpSr+/ofUkYdr6h3i+n2Ghh77o7a88Hgc+m3wFCEUMaLuOObuY7gM0nt6X
vW8hxmmPZJQYfmPNfvQF0pk4dqp2rBkoPZRIFbJlSUaiLHxlAYdx90MIxSEC5XEv
4hjNzCCJm+wdnzU1MsR8xYtPpaSPJyXon6XFXKGFEP0q1Hi7jOrisRPThNdRAgaw
mPKvme4UX3/Hhah+0lRmazwt1rxxkU/DqtNS3rBKwuVlA43oEY2hscxG0qmgBysm
ND7cfehyq6GT1FBk+cXNj2POomCP/XDx4JvdlYL0169o0jRci2s2PlrU9tfw/qZ7
IL/h5+VUV+IasyDMYjWrnAKPiOTHN6ebt8r/bCkd+w1DjrkjdYiGZcg0eQOfVTRF
FIzgw662cRZIRjdkVP6YeKiVqUXfz/FaScL3Ry6qSOfv+RUVqdiU1A3jeJwlbdEb
0VHtPRlrh+GXFy9kNdSrUnEfRKUxJ+GfgBzo1W2Rt9tFfxBEdwaIoteUwUEsE6PA
ybDxKsqT2r4QYN7cyvDG2576cubqnVfuIFiG9Ih/mLydz3/c4VIL2rOz8khUkGIv
JXfqO7RxFv67+vYi/1xZZqPlXaHk7Jg8UuR2gh5z966MygARlj6osDWbJFl4U/JG
Kr/DvqhN0hTVQD6ZqvkqjW2C+kwMMwS09YjV6jkVny8wgHLt1r4bAXh57RALtO1g
BsGbqUVUmHS/GTWHUXJSPwAjiWSE/ZGGj1RrcAaYafOA1M1GOOaOSIlnhmLBcZtu
DdUHr0YA6+7BosVIjXf8kU55tDOMG6hRbVl8dkKNsLy4chL9qxdBsdzqsPdhynTU
RvMBSJR7QTz9pfZJqlh1ZC1FbVU5jxJnNYIwcHAYFyT3SKMAAOE/NcGT5PVAXTKf
RgfvywD+DRnLBiUGo95lBv+gh0PPPqK/7q69DUi8QpmaUp07m6yvOwAsAUdBqq4u
NiEVXOt53zeqJdsl/OCAH/dKaNPOdhaXByFDv6M7J8m51fW3QCVEwKcy9eW7GWA=
=1Uef
-----END PGP SIGNATURE-----