Alternately, a higher-level API than the native struct-based socket protocol could enable more rapid development of such bindings. For example, support for YAML, while slower than native datatypes, would allow much easier integration with a number of languages and toolkits, without concern for such low-level native idiosyncracies as bit-order and integer size.
If anyone is interested in working on a server-side implementation of such support, I would be more than happy to provide a proof-of-concept implementation of a client library in Ruby and/or Python.
- Micah adds:
- There is already a perl client library, though it's not usable yet. There are also a few for less popular languages like tcl and lua. Any help on improving these would be appreciated. Additionally, we could use a C++ client library. It could have an object model similar to the python lib's. As for a higher-level wire protocol, I had planned to do something similar once the network code is refactored. Probably would have added CORBA, and some ASCII protocol that would be good for debugging and prototyping. However, now that the design for TwoDot0 is coming in to focus it looks like this should just be a feature for the new object model's pseudo-RPC layer.