1.2: ----- the first 1.XX release. supports synchronous operations 1.21: ----- bugfix release: fixed the problem with objects that don't have a __repr__ or __str__ 1.6: ----- this version never came public. added thread synchronization and events, which allow the server to inform the client of events, without blocking for client response. 2.2: ----- non backwards-compatible! first 2.XX release, added asynchronous proxies and thread synchronization this has brought with it a new kind of server -- the threaded_server, which performs well on both linux and windows. the older 'events' mechanism was removed as asynchornous proxies are much better, and also allow distributed computing. also, added the Utils module, which provide many convenience functions. in version 1.XX, i just overridden __builtin__.xxx, which was something you might not have wanted. so now you do "from Utils import *" also: revised demos note: the selecing and simple servers and deprecated, and are there only for systems that don't support threads (some older flavors of unix). knonw bugs: * windows bug: the pipe parent/child dont work on windows 2.22: ----- some bug fixes to the servers, etc. the selecting server turned out buggy. don't use it. added a new demo known bugs: * the selecting server * windows bug: the Utils.remote_shell doesnt redirect the output of the spawned command. 2.25: ----- fixed the selecting server fixed a bug in download (the problem with copy-paste). thanks go to steff. added two new utils: upload_package and update_module. they allow you to upload packages to the server, and update and existing module. i dont think they are very useful, but what the heck. 2.26: ----- fixed a bug when the remote object does not provide __nonzero__ 2.30: ----- fixed several minor bugs (mostly semantic) added protection for installing excepthook more than once added the `obtain` funcion, which "brings forth" a remote object added remote_post_mortem (debugging the traceback of a remote exception) added an optional callback for Async proxies (which is called when they are ready) therefore, the AsyncCallback mechanism was removed. changed demo-3 and added demo-5. fixed a bug: __del__ should not be synchronous connection objects now have a `remote_conn` property, letting you mess around with the remote side of the connection 2.31: ----- when you close() a connection, it releases all resources as well (this is done to untangle cyclic-dependencies and make the gc happy) thanks to that, servers now release resources better and sooner 2.32: ----- fixed a bug in __all__ of factories.py removed all the stuff from __init__.py (just useless) cleanups semantic corrections 2.35: ----- fixed a potential bug in Connection.close converted FullyDyanmicMetaClass to a function (instead of a class). metaclasses are too magical by themselves, so i didn't want to over-do it. this caused trouble with __doc__ of netproxies, but i found a way around it. added docstrings throughout the code updated the servers i will add an ssl-enabled server when i have time w00t! rpyc is getting very stable (no real bugs) 2.36: ----- added 'threaded_server' to ServerUtils. it's a mix-in you can use wherever you like, instead of writing a server by yourself. improved the logging mechanism of ServerUtils 2.40: ----- added imports to __init__.py, so you can now do "from Rpyc import *". this is backwards compatible however, "from Rpyc.Factories import SocketConnection" still works. cleaned a little the __all__ of Utils.py new feature: added 'execute' and 'namespace'. 'execute' lets you execute code on the remote side of the connection, and 'namespace' is the namespace in which 'execute' evaluates. added demo-6.py to show how to use it fixed demo-2.py (now that remote_interpreter isn't a part of Utils.__al__) 2.45: ----- cleanups: improved the unboxing of ImmDicts, some other minor things bugfix: PipeStream.write expected write to return the number of bytes written, as is the case with sockets. this is not the case with file objects, however, which meant the operation blocked indefinitely. thanks to rotem yaari for reporting the bug this also solves a long time bug with windows: the pipe demo now works with windows. i had to stub stream.wait() and stream.is_available() on windows, so it's less efficient and Async wouldn't work properly, but that's life. changed a little the semantics of Stream and Channel added authentication: this will make several people happy. the auth_server was added, which supports authentication, so you can run the server over the internet. only authentication is added, not encryption. you are still encouraged to use SSL/VPNs. this was added because many people had trouble with python SSL.