XMLRPC C API Reference
Complete C API Reference
Examples / Tutorial
XMLRPC Protocol Spec
RFC: Standard Fault Codes
xmlrpc mailing List
xmlrpc mailing List
new expat project
In a Nutshellxmlrpc-epi is an implementation of the xmlrpc protocol in C. It provides an easy to use API for developers to serialize RPC requests to and from XML. It does *not* include a transport layer, such as HTTP. The API is primarily based upon proprietary code written for internal usage at Epinions.com, and was later modified to incorporate concepts from the xmlrpc protocol. It passed the xmlrpc validation test suite in December 2000. (Try It Now.)
A php extension which uses this library is also available and is included with php as of php 4.1.0. See xmlrpc-epi-php.
As of Sept. 27, 2001, experimental support for SOAP v 1.1 has been added to the library. This support is implemented transparently to the application such that a single API can be used for manipulation of values, yet both SOAP and XML-RPC can be read or written.
Various iterations of this code have been/are running at Epinions.com and are sufficiently fast for the high traffic volume this site encounters, with several xmlrpc type requests generated for each user http request. No specific speed claims are made. Your mileage may vary.
Usage ParadigmThe user of this library will typically be implementing either an XMLRPC server, an XMLRPC client, or both. The client will use the library to build an in-memory representation of a request, and then serialize (encode) that request into XML. The client will then send the XML to the server via external mechanism. (XMLRPC-EPI does *not* include a transport layer, not even HTTP.) The server will de-serialize the XML back into an binary representation, call the appropriate registered method -- thereby generating a response. The response will be serialized into XML and sent back to the client. The client will de-serialize it into memory, and can iterate through the results via API.
Both the request and the response may consist of arbitrarily long, arbitrarily nested values. The values may be one of several types, as defined by XMLRPC_VALUE_TYPE.
DistributionsYou will find xmlrpc-epi included with popular Linux distros such as Debian, and it can be installed with a simple "apt-get install libxmlrpc-epi". A visual studio project file is also included for windows users and this will compile with the free versions of Visual Studio available from Microsoft.