A small but powerful RPC library for Python, powered by ZeroMQ.
Branch | Status | Coverage |
---|---|---|
master | ||
develop |
Latest version: 0.2-alpha
You can simply install from PyPI:
pip install smartrpyc==0.2a
or, if you want the latest version from git:
pip install git+git://github.com/xk0/SmartRPyC.git@master#egg=SmartRPyC
The library has been tested and is known to work on:
- CPython 2.6
- CPython 2.7
- CPython 3.2
- CPython 3.3
Note: Python3 support is provided via 2to3 conversion, automatically handled by distribute on install. Everything should work just fine.
Note: There currently are some problems with PyPy due to dependency on C extensions.
Have a look at the SmartRPyC documentation.
While dotCloud's ZeroRPC is a very valid project, there are some things we wanted to improve over it:
-
More Pythonic: I didn't need to support cross-language compatibility, so I opted for improving the support for Python, by allowing things like keyword arguments.
-
Simpler: I didn't need some features offered by ZeroRPC, while I needed the ability to extend the library to add some others.
-
Support middleware: for things like authentication management, it's way better to have the server/client handle what needed in the background, than doing ugly things such as adding a "token" argument to every call requiring authentication.
-
Some bugfixes: for example, we're not sharing the same ZeroRPC context for everything, as this would cause issues when running in a multithreaded environment (eg. when using the client in a flask view).
To run the full test suite, from the sources folder, run:
% python setup.py test
You can also run the complete test suite with different Python versions
by using tox
:
% pip install tox
% tox