After a long break from CB coding, I'm planning to resume work on my Python plugin in the near future. The next step is to provide a communication path to python processes. This will allow me to offer features like symbol browsing for python code, a python interpreter as a dockable window etc. My first instinct was to try embedding python within a CB plugin. The problem is python embedding is a bit of a mess and it's very difficult to create multiple instances of the interpreter within a single process. On the python list the general recommendation is to avoid embedding and use inter process communication on one or more python process.
I've decided that it will be better to use something like XML RPC to communicate with either locally or remotely spawned Python processes. In the case of Python, XML RPC is a good choice because python provides an XML RPC library in the standard package. Presumably, using XML RPC I could create python intepreter and symbol browser servers, which would take requests over XML RPC from my CB python plugin.
Does anyone know of a good multi-platform implementation of XML RPC? Or perhaps there are better alternatives to XML RPC?
Beyond python I could see that there might be many applications of XML RPC (or related protocols) to CB plugins, especially in the embedded device world. Anyway, I'm just putting these ideas out here in case others might have some valuable input.