[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Discussion about file format for the future
From: |
EricZolf |
Subject: |
Discussion about file format for the future |
Date: |
Thu, 4 Jun 2020 12:45:34 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 |
Hi,
rdiff-backup has currently its own file formats, which are far from
being standard, meaning a lot of custom code to handle these formats,
respectively a lot of different files.
Middle term I'd like to move to a more standard format for code
efficiency reasons: if the code is in a library, I don't need to write
and maintain it, and newcomers don't need to learn the format.
My opinion is almost made on which format I'd like to use but I want to
make sure I don't miss arguments and hence open the discussion before
it's too late.
On the basis that we have 4 potential formats to consider (XML, JSON,
YAML or TOML), I've put together the following criteria:
- human readable, standardized, well-maintained Python library
available, the obvious... (all)
- allows for comments, useful for debugging and testing purposes (JSON out)
- as little verbose as possible, easy to create/fix manually (XML out,
JSON ok-ish)
- complete language, i.e. allows for dicts, lists, lists of dicts, etc.,
up to a full-blown serialization language [1] (TOML out)
- streamable, i.e. doesn't need a closing element to be valid, because
our current formats are like this, and it fits better the
iterable-approach used throughout the code (JSON and XML out)
I was almost finished with this list, as I discovered [2] which in many
more words and examples are saying quite the same.
Side note: even if the arguments are good, I'm not planning to use
strictyaml, a library not even packaged for Fedora. I'd prefer to use
the safe_load function of pyyaml, or whatever fits the needs (YAML 1.2
[4] might even get support in the near future [5]).
As written, my point is about simplifying the code, no immediate
decision required, but I prefer to have this discussion before it's too
late to have it...
Thanks, Eric
[1] https://en.wikipedia.org/wiki/Comparison_of_data_serialization_formats
[2] https://hitchdev.com/strictyaml/why-not/
[3] https://pyyaml.org/
[4] https://yaml.org/spec/1.2/spec.html
[5] https://github.com/yaml/pyyaml/issues/116
- Discussion about file format for the future,
EricZolf <=
- Re: Discussion about file format for the future, Dominic Raferd, 2020/06/04
- Re: Discussion about file format for the future, EricZolf, 2020/06/04
- Re: Discussion about file format for the future, rhkramer, 2020/06/04
- Re: Discussion about file format for the future, EricZolf, 2020/06/04
- Re: Discussion about file format for the future, rhkramer, 2020/06/04
- Re: Discussion about file format for the future, Patrik Dufresne, 2020/06/04
- Re: Discussion about file format for the future, Eric L. Zolf, 2020/06/04
- Re: Discussion about file format for the future, Robert Nichols, 2020/06/04
- Re: Discussion about file format for the future, Patrik Dufresne, 2020/06/05
- Re: Discussion about file format for the future, Derek Atkins, 2020/06/05