October 3rd, 2005

cl-soap

I came across the following message from Sven Van C10e. (He had cc'd it to Lispmeister, lemonodor, and Bill Clementson, so I think it's safe to say he is hoping for some publicity.)

Last month I started a new open-source (LLGPL) project on common-lisp.net called CL-SOAP, with as base URL:

http://common-lisp.net/project/cl-soap

CL-SOAP is a library that will ultimately implement the full SOAP 1.1 spec, both the client and server sides, using both HTTP and HTTPS as transports as well as the WSDL 1.1 spec and the XML Schema Definition spec on as many Common Lisp implementations as possible. Interoperability with various other SOAP implementations and applications will be possible.

Although no code has yet been released, the first target has now been reached: CL-SOAP can act as client to the Google AdWords API. This means the basic SOAP framework including an HTTP/HTTPS client works in document style, WSDL including XSD types is parsed and used dynamically to make the actual calls. To see this real-world code in action, goto

http://common-lisp.net/project/cl-soap/google-adwords-api.html

Furthermore, simple RPC style SOAP with or without WSDL support also works (for automagic WSDL support, parameter types must be simple though).

If you are interested, please check out the code, try to make CL-SOAP work in your particular situation and report back your experiences.

If you understand enough about the internals of SOAP, WSDL and XSD, and have some free time, you are invited to contribute actual code to CL-SOAP.

The following tasks are still open:

  • test and (im)prove compatibility with other SOAP implementations and applications
  • port to other Common Lisp implementations
  • implement server side SOAP (document model)
  • define WSDL in Lisp (and autogenerate it)
  • implement more of WSDL and XSD.
  • implement more of the SOAP RPC model and encoding, both for client and server

Sven Van Caekenberghe