Spyne is a Python RPC toolkit that makes it easy to expose online services that have a well-defined API using multiple protocols and transports.
See the documentation for more information. For a quick introduction, you can have a look at the lightning talk and the slides from Pycon 2012 (from back when the project was called Rpclib). If you like Spyne, make sure to star it on Github.
You can expose the same function using multiple protocols and transports.
You can use TableModel children as both mapped objects in SQLAlchemy code and type annotators in Spyne code. Spyne offers rich mechanisms that lets you use PostgreSQL as a hybrid document store.
The Auxiliary Methods offer a powerful task queuing API. To do additional
work after the primary method returns, you can set the
attribute in another service definition class and implement the same
method signature. Currently, only the simplest defer-to-thread method
with a non-persistent queue is implemented. This is an experimental part
of Spyne. Patches and feedback are most welcome.