b0VIM 5.73 dandalibby.epinions.comU3210#"! UtpÿadH d ÿd A C implementation of the xmlrpc protocol originally written for/by Epinions.com. It is well tested and is being successfully used in a high traffic production environment (www.epinions.com) for communication between PHP and a proprietary backend database layer. This implementation is built as a library (.so) and is suitable for usage in most any C application. It does not currently contain any networking function, and is transport agnostic, ie, you could read in the xml from disk, from an http connection, or from the keyboard. API's are available for both client and server tasks. Features and Architecture: - comprehensive API for manipulation of data values - The XML parsing (xml_element.c) is completely independent of the XMLRPC api. In fact, it can be used as a standalone (non-standard) dom implementation. - Because of this, the same XMLRPC data can be serialized into multiple xml vocabularies. It is simply a matter of writing a transport. So far, two transports have been defined. The default xmlrpc vocab (xml_to_xmlrpc.c), and simple-rpc (xml_to_dandarpc.c) which is proprietary, but imho more readable, and nice for proprietary/legacy reasons. - Various output options, including: xml escaping via CDATA or entity, case folding, vocab version, and character encoding transformations. - One to One mapping between C structures and data values, thus a user of the API need not understand the arcana of the xmlrpc vocab. - support for mixed indexed/keyed vector types, making it more compatible with languages such as PHP. - quite speedy compared to implementations written in interpreted languages. Also, uses intelligent string handling, so not many strlen() calls, etc.