On Tue, Jun 05, 2018 at 02:54:07PM -0500, Eric Blake wrote: > 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?
By binary I actually meant binary. The idea is you could store things like PNG images in them (for icons). > 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. Of course how we represent them externally and/or while using QMP / qemu-img to store and retrieve them is up for grabs. Doesn't JSON allow binary to be encoded? (Knowing how poorly done JSON is, I wouldn't be surprised if not) Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-top is 'top' for virtual machines. Tiny program with many powerful monitoring features, net stats, disk stats, logging, etc. http://people.redhat.com/~rjones/virt-top