XML-RPC for C and C++

A lightweight RPC library based on XML and HTTP.

Copyright 2001 Eric Kidd. All rights reserved. This contents of this website may be distributed under the same license terms as XML-RPC for C/C++. Funding for XML-RPC for C/C++ was provided in part by First Peer, Inc.

SourceForge Logo

Useful XML-RPC Hacks

This page contains various useful XML-RPC hacks. Most of these add new features to other XML-RPC libraries.

If any of the patches on this page apply to a program you maintain, please feel free to apply them to your master copy. I'm willing to change the licensing terms as needed.

Documentation

Code

Libraries with built-in introspection support include XML-RPC PHP, XML-RPC.Net, UserLand Frontier and xmlrpc-c. Patches for many other libraries can be found below.

Web-based instrospection client (by Graham Dumpleton)

Determine the methods supported by an XML-RPC server using the web. Very nifty. An interactive debugger is included.

Python XML-RPC Debugger (by Graham Dumpleton)

This includes a Python Tk GUI.

xml-rpc-api2txt

Generate nice, clean ASCII documentation for an XML-RPC server using the introspection API. Requires Frontier::RPC2. (sample output)

xml-rpc-api2cpp

Generates C++ proxy classes for remote XML-RPC servers using introspection. Included with xmlrpc-c. (sample output)

xmlrpc_registry.py
sample.py

Introspection and system.multicall support for Fredrik Lundh's excellent xmlrpclib.

Registry.pm
sample.pl

Introspection and system.multicall support for Ken MacLeod's Frontier::RPC2. This should probably work with other Perl XML-RPC servers with a bit of tweaking.

xmlrpc.jar
helma-xmlrpc-introspection.diff
SampleServer.java

Introspection support and a security fix for Hannes Wallnoefer's excellent Helma XML-RPC for Java. This code is fully automatic, relying on the Java 1.1 Reflection API to calculate method signatures. Note that you will need to change your exising classes slighly to work with the new security code--see the example or patch for details. (The pre-built xmlrpc.jar file contains the core server, but no servlet or FESI support.)

test_multicall.py

Make sure your system.multicall implementation behaves properly. Requires xmlrpclib.