I'd like to announce Pyrolite 1.1, a lightweight Pyro client library for Java and .NET
"what is a java/.net library doing in this Python newsgroup?" If you've got a Python application and you find yourself wanting to access it from the harsh world of java or .net, Pyrolite could be of help. This library is meant to connect a java or .net program to Python in a very simple way, using the Pyro protocol. Pyro is a remote object library that is written for Python. Pyro itself can also be used in Jython or IronPython, so you can already call Python applications from java or .net (using Pyro), but sometimes that is just too much weight if you only need to call a few methods. So I decided to explore the possibilities of a thin client-only library for java and .Net.
Download Pyrolite here: http://irmen.home.xs4all.nl/pyrolite/ (Readme.txt, java jar, .NET assembly DLL, source code archive, javadocs). Readonly subversion access: svn://svn.razorvine.net/Various/Pyrolite/ More info on Pyro: http://irmen.home.xs4all.nl/pyro/
Pyrolite allows you to connect your Java or .NET program to Python in an extremely straightforward way, using the Pyro protocol. Include this tiny library (~50kb), and off you go. It contains: - an almost fully functional pickle implementation (protocol 2) - a fully functional unpickle implementation (protocols 0,1,2,3) - fairly intelligent mapping of Python data types to Java/.NET data types and vice versa - ofcourse, a subset of the client-side of the Pyro protocol and proxy logic.
Example program (java): http://paste.pocoo.org/show/438990/ The .NET version of this would be almost equivalent.
The Pyrolite source archive includes all source code, a couple of test programs, and a large amount of unit tests (everything in java and C#). There is not much documentation though - use the source, Luke... (or browse the javadocs).
Pyrolite only supports Pyro 4.x. Pyrolite for java requires java 1.5. The project is done in Pycharm. Pyrolite for .NET requires .NET 3.5 or Mono. The solution is done in sharpdevelop/monodevelop (but probably works in visual studio too).
I've done quite some work to make this a stable and usable piece of software but consider it an experiment, or a beta version. I am quite interested in your thoughts about it. Let me know if you find it useful!
Irmen de Jong