SourceForge Logo
XMLRPC-EPI
A standalone C API for XML-RPC

About xmlrpc-epi
  Summary
  Features
  Projects
  History
  License

About xmlrpc-epi-php
  Summary
  Examples
  API

Documentation
  Architecture
  XMLRPC C API Reference
  Complete C API Reference
  Examples / Tutorial
  XMLRPC Protocol Spec
  RFC: system.describeMethods
  RFC: Standard Fault Codes

SourceForge
  Project Page
  Downloads
  Mailing List
  Forums
  Bug Reports
  Feature Requests
  CVS Access

XML-RPC Community
  xmlrpc.org
  xmlrpc mailing List
  online services

Related Links
  xmlrpc.org
  xmlrpc mailing List
  original expat
  new expat project
  epinions.com
  xmlrpc-c
  xmlrpc-ensor

Features and Architecture

  • comprehensive API for manipulation of values
  • The XML parsing (xml_element.c) is completely independent of the XMLRPC api. In fact, it can be used as a standalone 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.
  • support for converting UTF-8 (from xml parser) to local character encoding.
  • One to One mapping between C structures and actual values, without developer having to know arcana of xmlrpc protocol.
  • 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.