Remote Python Call (RPyC) is a python library providing transparent and symmetric IPC/RPC and distributed computing. It supports both synchronous and asynchronous operations. It works by giving you transparent control over a remote python interpreter: you can import remote modules, access remote classes, functions, and instances, just as you would do locally. Typical use cases are remote administration, distributed testing, resource sharing, and tunneling. Version 2.60 was released last week, adding supports for secure (TLS) connections.
I looked around on the site, and couldn’t figure out the guarantees made about a remote request semantics (i.e at most once, at least once, at most and at least once, how it handles long waits.. etc.). Does anyone know the details? This is fairly basic distributed object stuff, but it would be interesting to see how much they did.
I guess if it only operates over tcp, you could at least say that tcp provides reliable delivery for free.
Any more insights?
i dont quite understand what you mean by that. you can look at the demos, showing the difference between async vs. sync operation. sync blocks, while async returns a “promise” object, that can be queried for readyness.
I’ve never used it, but I might just have to add a little ebuild to my overlay
John M.
I’d also look at Twisted Matrix, which offers the same thing.
Another one worth a mention is Pyro:
http://pyro.sourceforge.net/
you can read about pyro under “related projects” in the about page. anyway, the main issue is pyro is not transparent, has lots of limitations and technical issues, and requires much more configuring (name server, etc.)