[Top][All Lists]

[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


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

reply via email to

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