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

Reply via email to