Pyro is short for PYthon Remote Objects. It is an advanced and powerful Distributed Object Technology system written entirely in Python, that is designed to be very easy to use. Never worry about writing network communication code again, when using Pyro you just write your Python objects like you would normally. With only a few lines of extra code, Pyro takes care of the network communication between your objects once you split them over different machines on the network. All the gory socket programming details are taken care of, you just call a method on a remote object as if it were a local object!
Pyro provides an object-oriented form of RPC. You can use Pyro within a single system but also use it for IPC. For those that are familiar with Java, Pyro resembles Java's Remote Method Invocation (RMI). It is less similar to CORBA - which is a system- and language independent Distributed Object Technology and has much more to offer than Pyro or RMI. But Pyro is small, simple, fun and free! For another overview of what Pyro is, see the Pyro page online (http://irmen.home.xs4all.nl/pyro3). You can also download the package from there.
Copyright and Disclaimer
This software is copyright © by Irmen de Jong. It is subject to change without notice. Pyro comes
as-is, without warranty and in no event can Irmen de Jong be held liable for any problems resulting
from this software. License: Pyro is released under the MIT license, see the file "LICENSE".
Security Warning
In the Security chapter is an important security warning that you absolutely must
read!
Legacy version
Pyro 3.x is in maintenance mode.
This means it will only get security- and bugfixes.
New projects are strongly advised to use Pyro4 instead,
which is the new Pyro version that is actively being developed.
Features of Pyro 3.x
*args
and **keywords
).To get an idea of how Pyro works, here is a scenario:
test
' containing a class 'testclass
', which will be accessed
remotely.testclass
', and registers them with the Pyro Name
Server.testclass
', the client can now invoke methods on the remote
objects. The proxy will forward the method invocations and return the results, just as if it was the remote object
itself. Not a single line of network communication code has been written.To dive directly into the code, have a look at the various Pyro examples in the examples
directory
(read the Readme.txt
). There is much to learn there. The easiest example to start with
is the "simple"
example, it shows how a normal python object is made into a Pyro object and accessed remotely from
the client.
Required Software:
pyro-xnsc
tool requires the Tkinter Python extension module, with Tcl/Tk installed.pyro-wxnsc
tool requires the WxPython extension module with WxWindows.Important information Links
Related technology
Thanks
I want to thank everybody on the Pyro mailing list, your participation is of great value. And to everybody who contacted me about Pyro, for positive remarks, comments, or with problems (it all helps to improve Pyro): Thank You!