Web Services
Web services can be generally regarded as functions or functionality of applications or systems exposed over the Web using standardised message formats and typically interfaced to other software using traditional APIs, although "message-centric" usage of such services is also possible and may be favoured by certain technologies.
JSON-RPC
JSON-RPC is an increasingly popular Web Services specification that uses the light-weight JSON (JavaScript Object Notation) data-interchange format (in comparison to the protocols listed below, which all use XML). JSON-RPC was created in 2004 and implementations exist in JavaScript, Java, PHP and Perl (among other languages) in addition to Python.
JsonUtils is another library that supports JSON-RPC.
JSON-WSP
pfacka/jsonwsp is another JSON-WSP server and client implementation.
SOAP
SOAP is a Web services technology favoured in certain environments. The following projects seek to support SOAP and related technologies such as WSDL:
on PyPi) - Suds is a lightweight SOAP python client that provides a service proxy for Web Services. This is the best maintained fork of the original Suds project by Jeff Ortel, and it's compatible with Python 2 and 3.
on PyPi) - Ladon is a framework for exposing python methods to several internet service protocols. It's compatible with Python 2 and 3.
Python Web Services and Zolera Soap Infrastructure ((ZSI on PyPi) provides both client and server SOAP libraries. It was very popular, but it's a dead project (last release 2007) without any Python 3 support.
SOAPjr
XML-RPC
The first popular and largely standardised Web services technology was XML-RPC, supported in Python by the following libraries:
- xmlrpclib - found in the standard library
XMPP
More in common with the message-centric usage of SOAP, XMPP - an Internet standard which provides the foundation for the Jabber instant messaging technology - could be used as a Web services protocol. See PythonXml for details of suitable projects.
Editorial Note
The above lists should be arranged in ascending alphabetical order - please respect this when adding new solutions. When specifying release dates please use the format YYYY-MM-DD.