[Soap-Python] soap library for python-3.x

Felix Schwarz felix.schwarz at oss.schwarz.eu
Fri May 9 16:30:57 CEST 2014


Am 25.04.2014 11:56, schrieb Deepika Nagpal:
> We have to start a project for developing a soap server in python-3.x for which I am
> looking for a soap server side library. Please let me know what are the options
> available for python-3.x and which of these libraries are actively maintained. Thanks.

(Disclaimer: I'm one of the maintainers of "soapbox-bsd".)

I think you should check out soapbox-bsd which is the only real option for
server-side SOAP in Python: https://github.com/FelixSchwarz/soapbox-bsd

I realize I made a bold strong statement so let me quickly explain why I'm
saying this.

A bit of background first:
- I'm not doing SOAP for fun or to provide "just another RPC layer".
- I need to implement SOAP protocols defined by others without any chance to
  change a tiny bit.
- I have an unknown number of SOAP clients, most proprietary desktop
  applications from a random number of ISVs (each with their own bugs). I
  need to be interoperable with every single one.

>From my experience rules out any library which supports SOAP among others. I
needed complete control over the complete request/response parsing (including
the ability to process/return invalid SOAP to satisfy specific clients).


SoapBox was built by Damian Powązka, later on taken over by guys at Flight
Data Services. However these guys changed the license from BSD to OSL in early
2012 (and essentially stopped maintenance shortly after). In late 2013 I
forked the last BSD commit and contributed many fixes (including non-Django
support).

Since early 2014 a small team of developers from Polyconseil (french
consulting company) contributes most of the changes. I have a pretty big merge
queue for my repo but I hope to clear that in the next few days.

Pros:
- maintained by professional software developers (no hobby project), multiple
  companies involved.
- active community management: I checked several of the original soapboax
  forks, reached out to the authors and was able to get relicensing
  permission from them, pushing their "private" changes into soapbox-bsd.
- we support Python 2.6-3.x (travis build server)
- abstraction layer for XSD data types with the goal that the abstraction can
  support all allowed XML schema features
- supporting different versions of SOAP/WSDL
- supporting multiple web frameworks: Pyramid, Django, WSGI, ...
- basic code generation from WSDL (you'll get a basic model skeletton pretty
  quick for simple WSDLs, probably syntax errors/missing features for complex
  WSDLs)

Cons:
- little documentation outside the source
- not polished to use as "black box" library
- not installable through pypi
- quite a bit of API changes at the moment
- you should expect to see missing features where you need to implement
  datatypes yourself or implement missing SOAP functionality.

In the future we'll likely rename the project to make it completely
independent from Soapbox and then we'll fix also the "pypi installation" and
surrounding issues.

I tried several other libraries (e.g. spyne, pysimplesoap) but none of them
gave me complete control over request parsing/response generation.

Felix


More information about the Soap mailing list