On Thu, 25 Mar 2010 08:57:36 -0500
Anthony Liguori <anthony(a)codemonkey.ws> wrote:
On 03/25/2010 08:48 AM, Avi Kivity wrote:
>>
>> But an awful lot of the providers for pegasus are written in C.
>
> But we're concerned with only one, the virt provider. None of the
> others will use libqemu?
>
>> The point is, C is a lowest common denominator and it's important to
>> support in a proper way.
>
> Problem is, it means horrible support for everyone else.
Why?
Because it's useless for non C clients. QMP is language independent,
libqemu is a full machinery for C clients only.
We can provide a generic QMP dispatch interface that high level
languages can use. Then they can do fancy dispatch, treat QErrors as
exceptions, etc.
They can do that by accessing QMP directly. Why would a Python developer
get in the mess of writing a Python binding for libqemu if they call do
the exactly same thing by using its native json module?
Man, opening a QMP connection from Python and sending commands can be
done with a few lines.
We just ought to also provide some simple C wrappers for all of the
functions. Yes, the C interface is inferior to the generic interface
but that's fine.
Why don't we start with my simple lib suggestion and wait one or two
releases to see what happens?