A fast RPC library for Python.
Python
Switch branches/tags
Nothing to show
Latest commit b121aa2 Nov 12, 2015 @rjpower Increase the range of RPC_IDs
Over extended use, the range can be exceeded, throwing a StopIteration error.

Jump it up to 1 trillion, which shouldn't be triggered in any reasonable.
Permalink
Failed to load latest commit information.
speedy Increase the range of RPC_IDs Nov 12, 2015
test
.gitignore Get everything working again with updated unittests for non-blocking Nov 5, 2012
.hgignore Initial checkin of RPC over HTTP library. Sep 16, 2011
README.md Switch over to zeromq code base. Jun 19, 2013
setup.py Remove numpy, cython dependencies. Jun 19, 2013
virtualenv.py

README.md

Speedy - A Fast RPC System for Python

A fast non-blocking RPC library for Python.

Installation

pip install [--user] speedy

or

easy_install speedy

Usage

Imports
import speedy
from speedy import zeromq
Server
class MyServer(speedy.Server):
    def foo(self, handle, request):
        handle.done(do_something(request.foo, request.bar))
server = MyServer(zeromq.server_socket(('127.0.0.1', port)))
# or use -1 to have the server grab an open port
# server = MyServer(zeromq.server_socket(('127.0.0.1', -1)))
server.serve() # blocks until server exits
Client
client = speedy.Client(zeromq.client_socket(('127.0.0.1', server_port)))

# requests are arbitrary python objects
request = { 'foo' : 123, 'bar' : 456 }

future = client.foo(request)

# Wait for the result.   If the server encountered an error,
# an speedy.RemoteException will be thrown. 
result = future.wait()

Feedback

Questions, comments: power@cs.nyu.edu