On 06/05/2018 02:47 PM, Michael S. Tsirkin wrote:
Layer 1:
The string shall always be a JSON 'object'; i.e. of the form
{ "something": ... , "more": ... }
The key strings shall be non-null and non-empty and shall
be unique.
I think it would be simpler if layer 0 simply provided a list of
names/value pairs, where names are ascii strings, and values are
binary data[1]. It would make layer 1 unnecessary, and allow (3)
and (4) to happen.
[1] In other words, Rich's proposal of "named blobs":
https://www.mail-archive.com/qemu-block@nongnu.org/msg37856.html
I think simple is beautiful, too. But assuming they
really are binary how are blobs encoded?
Did binary really mean UTF-8 here?
Binary blobs can always be base64 encoded for representation within a
valid JSON UTF-8 string (and we already have several QMP interfaces that
utilize base64 encoding to pass through what is otherwise invalid
UTF-8). It does inflate things slightly compared to a format that
allows a raw length coupled with raw data, but that is not necessarily a
problem.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org