[Development] QDataStream: blackbox or document all versions?
annulen at yandex.ru
Sun Sep 25 23:37:25 CEST 2016
26.09.2016, 00:12, "Konstantin Tokarev" <annulen at yandex.ru>:
> 25.09.2016, 06:58, "Thiago Macieira" <thiago.macieira at intel.com>:
>> A thread on the interest mailing list started when someone asked for the
>> docs for the current format of the QDataStream wire protocol, to which I
>> replied that it doesn't exist as we don't maintain such docs.
>> Long story short, we have two options:
>> Option 1: claim QDataStream is a blackbox and tell people that the only thing
>> that can read QDataStream is QDataStream. That means removing the
>> documentation file src/corelib/doc/src/datastreamformat.qdoc, as we don't want
>> people getting any ideas that they could write their own decoders or encoders.
>> Option 2: the opposite, saying that reading QDataStream's output is fine from
>> non-Qt code and it's fine to write data that QDataStream should read. This
>> means extending the documentation to cover ALL 17 wire formats (including
>> bugs) and keeping it up to date whenever someone modifies the format.
>> I am in favour of Option 1 because I really don't think QDataStream is a good
>> format for exchanging data with non-Qt code. It's designed first and foremost
>> for Qt's own internal data formats (sometimes even depending on internal
>> details), the marshalling of certain types in certain versions is buggy and
>> lossy. Instead, people should find a better transport format for their data, of
>> which we already have in Qt:
>> QSettings (to an extent)
>> And I can add CBOR support if we want to.
> In case you are going to implement CBOR from scratch, please support string
> reference extension  which is needed to encode repeating strings (most
> importantly, data keys) efficiently.
>  http://cbor.schmorp.de/stringref
BTW, newly emerged SuperPack format goes further and introduces repeated keyset
>>  http://lists.qt-project.org/pipermail/interest/2016-September/024387.html
>> Thiago Macieira - thiago.macieira (AT) intel.com
>> Software Architect - Intel Open Source Technology Center
>> Development mailing list
>> Development at qt-project.org
> Development mailing list
> Development at qt-project.org
More information about the Development