[Mailman-Developers] Remote scripting with XML-RPC
Sat, 7 Apr 2001 15:48:58 -0400
Hello! I run several Mailman-based mailing lists. And along the way, I've
come to really love Mailman. Many thanks to everyone who has worked on
it; it's definitely the best list manager I've ever seen.
But--for better of for worse--I've decided to tamper with near
Here's what I'm up to:
* I want to be able to control Mailman remotely, using scripts.
For example, I want to be able to change list preferences, access the
approval queue, and generally do anything I could do through the web.
* Ideally, I'd like to be able to write these scripts in any popular
* I don't especially want to fake FORM POSTs and parse the HTML
response. This would work, but it's more work than I'd like to
get into on the client side.
So I've decided to add XML-RPC support to my local copy of Mailman.
XML-RPC is a protocol that allows you to make CGI-like "function calls"
over HTTP using specially-formatted XML documents. You can read all about
The HOWTO contains example clients and servers in many different languages.
Fredrik Lundh wrote an excellent implementation of XML-RPC for Python. His
code is used in Zope, the RedHat Network and some forthcoming stuff from
But why use XML-RPC?
1) XML-RPC is really simple. It doesn't get into Schemas, namespaces,
alternate encodings, or anything else especially fancy. Fredrik's
implemention is less than a 1,000 lines long, which isn't bad for an
RPC protocol. I'm not smart enough to cope anything more
2) XML-RPC is widely supported, with bindings for Python, Perl, Java, C,
C++, Tcl, KDE, Zope, AppleScript, Microsoft .NET, Ruby, Rebol, Delphi,
and some languages I'd never even heard of.
3) XML-RPC supports complex data-types: arrays, dictionaries, byte
4) Many XML-RPC implementations support Unicode, including Python, Perl,
Java, C and C++. This would allow me to handle international data
5) XML-RPC servers can support introspection, allowing a client to
discover APIs over the network. This makes it easy to generate
documentation, create wrapper classes, and so on, without needing to
cope with IDL. For more information on XML-RPC introspection, see:
OK, yes, I'm probably crazy. But it seems like a fun hack.
So if anybody else is interested in XML-RPC for Mailman, please let me
know. And if anybody can tell me why I'm nuts, please let me know
that, too. :-)
XML-RPC HOWTO: http://www.linuxdoc.org/HOWTO/XML-RPC-HOWTO/index.html
XML-RPC for C and C++: http://xmlrpc-c.sourceforge.net/
xmlrpc-c-devel list: http://xmlrpc-c.sourceforge.net/lists.php