[This project is discontinued. Please head over to github.com/arskom/spyne for the next version.] This is a simple, easily extendible soap library that provides several useful tools for creating, publishing and consuming soap web services in python.
Clone or download
Pull request Compare This branch is 125 commits ahead, 5774 commits behind arskom:master.
plq Merge pull request #34 from hugo-dc/master
Fix "x not defined" (_base.py)
Latest commit 23a0c5c Mar 6, 2013


This repository is going away! Please interact with rpclib instead.

Warning! This is soaplib's unstable development branch. The latest stable branch is here. The legacy soaplib-0.8 branch is here.


What is soaplib?

Soaplib is an easy to use python library for publishing soap web services using WSDL 1.1 standard, and answering SOAP 1.1 requests. With a very small amount of code, soaplib allows you to write a useful web service and deploy it as a WSGI application.

The official soaplib discussion forum can be found here.

The legacy versions of soaplib are also available in this repository. See here for the stable soaplib-0.8 branch. See here for the stable soaplib-1.0 branch.

See the downloads section for related downloads.


  • Deploy services as WSGI applications
  • Handles all xml (de)serialization
  • On-demand WSDL generation
  • Powerful customization features to support many use-cases
  • Doesn't get in your way!!!

Runtime Requirements

  • Python 2.4 through 2.7 (looking for volunteers to test Python 3.x)
  • A WSGI-compliant web server (CherryPy, WSGIUtils, Twisted, etc.)
  • lxml (available through easy_install)
  • pytz (available through easy_install)

Soaplib services can be deployed as WSGI applications, in any WSGI-compliant web server. See the examples directory in the source distribution for deployment examples. Soaplib services have been successfully run on the following web servers:

  • CherryPy 2.2
  • Flup
  • twisted.web (8.2, 9.0)
  • WSGIUtils 0.9

Development Requirements

  • Most examples and tests require Python 2.5 or greater
  • Twisted is required for soaplib.test.interop.server.basic and soaplib.test.interop.server.static.
  • To run automated tests, see instructions under test/README