Discussion about file format for the future

EricZolf <[email protected]>
Newsgroups gmane.comp.sysutils.backup.rdiff-backup.general
Organization rdiff-backup.net
Message-ID <[email protected]>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.