Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Which python SOAP libraries are still maintained?

Tags:

python

soap

There are a plenty of question regarding python SOAP clients on StackOverflow. However, all of them are 3+ years old.

The question is which python SOAP client libraries are currently actively maintained?

The only one I found is PySimpleSOAP. Are there any others?

like image 964
Yossi Avatar asked Jul 08 '13 15:07

Yossi


2 Answers

TL;DR:

zeep is in PyPi with docs here

Long answer:

I was going to post an updated request as of 2016 as it looks like some of the above have now also dropped off the radar.

According to Python WebServices there are a number of SOAP clients:

ZSI (Zolera Soap Infrastructure) - a version of the actively maintained Python Web Services project; ZSI-2.0 Released on 2007-02-02 provides both client and server SOAP libraries. Newly added was proper WSDL consumption of complex types into python classes.

soaplib - Soaplib is an easy to use python library for writing and calling soap web services. Webservices written with soaplib are simple, lightweight, work well with other SOAP implementations, and can be deployed as WSGI applications.

suds - Suds is a lightweight SOAP python client that provides a service proxy for Web Services.

pysimplesoap - PySimpeSoap is a simple and functional client/server. It goals are: ease of use and flexibility (no classes, autogenerated code or xml is required), WSDL introspection and generation, WS-I standard compliance, compatibility (including Java AXIS, .NET and Jboss WS). It is included into Web2Py to enable full-stack solutions (complementing other supported protocols as XML_RPC, JSON, AMF-RPC, etc.).

osa - osa is a fast/slim easy to use SOAP python client library.

Ladon Ladon is a multiprotocol approach to creating a webservice. Create one service and expose it to several service protocols including SOAP. Unlike most other Python based SOAP Service implementations Ladon dynamically generates WSDL files for your webservices. This is possible because the parameter types for each webservice method are defined via the ladonize decorator. Furthermore it should be mentioned that Ladon offers python 3 support.

zeep - Zeep is a modern (2016) and high performant SOAP client build on top of lxml and requests. It's compatible with Python 2 and 3.

As of writing this (late 2016) most of these seem to be outdated (only supporting up to SOAP1.1) and, going by commit history, have not been maintained since 2015 or even far earlier. This goes especially for ZSI, osa and suds.

The sole exception seems to zeep, which is actively maintained as of late 2016, offers SOAP1.2 support (and across all Python versions) - and at least in my case, worked perfectly out of the box from the moment I threw some WSDL at it.

UPDATE: While I don't plan on going back and editing this page constantly (I'd invite the author of zeep to do so), I wanted to add that 2 years after my last update zeep is still very actively maintained, with the latest commit December 2018. It supports Python up to 3.7 and is currently in version 3.2.0 (having left the 0.x pre-release versioning a long time ago). It's still my primary library on those rare occasions when I have to use XML-SOAP instead of REST.

zeep is in PyPi with docs here

like image 192
Marakai Avatar answered Oct 19 '22 06:10

Marakai


Check out the Python Wiki page on Web Services. You can click on the individual projects and see when they were last updated. For example, ZSI (Zolera Soap Infrastructure) was last updated on 2013-05-02.

like image 34
Myles Baker Avatar answered Oct 19 '22 05:10

Myles Baker