[libvirt] Should we switch to a different JSON library?

Daniel P. Berrangé berrange at redhat.com
Mon Feb 12 18:50:39 UTC 2018


On Mon, Feb 12, 2018 at 07:47:00PM +0100, Ján Tomko wrote:
> On Mon, Feb 12, 2018 at 02:38:02PM +0100, Pino Toscano wrote:
> > On Tuesday, 7 November 2017 14:05:25 CET Martin Kletzander wrote:
> > >  - Jansson [3] - I really like this one.  The API seems very intuitive,
> > >                  it has nice documentation [4] in readthedocs (and I'm
> > >                  not talking about the visual style, but how easy is to
> > >                  find information), it can be used for formatting JSON
> > >                  in a similar way we are doing it.  It has json_auto_t
> > >                  (optional) type that uses the attribute cleanup for
> > >                  automatic scope dereference (just in case we want to
> > >                  use it), it has iterators... did I tell you I like this
> > >                  one a lot?
> > > 
> > > What do you (others) think of switching the JSON library?  Do you know
> > > about any other projects that could be used considering license,
> > > platform support, etc.?  Also feel free to fix any mistakes I might have
> > > posted.  I double-checked it, but you know, "trust, but verify".
> > 
> > FYI: libguestfs just switched to Jansson [1], so any version starting
> > from 1.39.1 will use it instead of Yajl.  In case of libguestfs, yajl
> > was used directly, without wrappers of any sort, and the switch was
> > straightforward.
> > 
> > [1] https://github.com/libguestfs/libguestfs/commit/bd1c5c9f4dcf38458099db8a0bf4659a07ef055d
> > 
> 
> I do have a working virjson.c implementation in my local git waiting to be
> polished and sent. The issues with libvirt were:
> * virjson.c storing numbers as a string
> * backwards compatibility (AFAIK we want to support building on
>  RHEL/CentOS 6, which did not have recent enough jansson - for the
>  _foreach macros, at least 2.5 is needed)
>  If we really need to maintain two implementations side-by-side,
>  one of them should have an expiration date.

IMHO we only need to keepp yajl if RHEL6 doesn't have suitable jansson.
So ideally we'd figure out how to get that working, so we can ditch
yajl straightaway.

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|




More information about the libvir-list mailing list