RPC that doesn't break your back.

Latest release:
2.10.9 | Download | Jul 15th, 2013 | Trunk Travis Status

What is Spyne?

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.

It integrates with popular Python web frameworks as well as libraries like SQLAlchemy to keep your code as DRY as possible.

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.

Getting Started

You can expose the same function using multiple protocols and transports.

Input Protocol

Output Protocol



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.

Complex Type Serialization


The Auxiliary Methods offer a powerful task queuing API. To do additional work after the primary method returns, you can set the __aux__ 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.

Auxiliary Method Processor