Xen API C Bindings
==================

This distribution is the source code to the proposed Xen API C bindings.

The Xen API project will define an XML-RPC protocol for remote and local
management of Xen-based systems, and a set of bindings for these XML-RPC calls
into a number of languages (this package contains those to the C language).

The intention is to standardise these XML-RPC calls, and then the Xen project
will guarantee that that wire protocol will be supported for the long term.
The bindings will also be supported in the Xen tree, giving a stable
foundation for Xen management tools and middlewares, in particular the Xen CIM
providers and libvirt.

THIS IS A WORK IN PROGRESS.  The API and bindings are under active design and
development, and this is a snapshot release for developers only.  Both the API
and the C bindings are scheduled to be stabilised by the Xen 3.0.4 release
i.e. October 2006 at the earliest.

These bindings are open-source (LGPL), and will be committed as libraries to
the Xen trees for all to use after the Xen 3.0.3 release.

We welcome any discussion about this library and the API in general.  Please
join the Xen-API mailing list if you are interested in this project. I (Ewan
Mellor) will collate all the feedback from that list and push out new versions
of the document and the bindings as and when.


URLs
----

Xen-API wiki page:
http://wiki.xensource.com/xenwiki/XenApi

Xen-API mailing list:
  http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-api


Usage
-----

The bindings depend upon libxml2, the XML toolkit from the GNOME project; the
test program depends upon libcurl3 also.  On Debian, you need the packages
libxml2-dev and libcurl3-dev.

To compile, type make.  To compile the test also, type make
test/test_bindings, remembering the additional dependency.

To run the test, do

LD_LIBRARY_PATH=. ./test/test_bindings <url> <username> <password>

where <url> is the fragment of the server URL that follows the http://, for
example "localhost:8005/RPC2".
