[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Monotone-devel] serialization format

From: Stephen Leake
Subject: Re: [Monotone-devel] serialization format
Date: Mon, 04 Apr 2016 11:58:19 -0500
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (windows-nt)

Markus Wanner <address@hidden> 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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]