On Fri, 11 May 2001 richard@bizarsoftware.com.au wrote:
Shane Hathaway wrote:
The problem with sending binary data unencoded is line endings: \r\n might be "helpfully" converted to \n and vice-versa. Other characters can be encoded but apparently parsers treat and as a real line ending.
I'm not sure where this leaves me... I think this means that ultimately it's not possible to send binary data which contains 0x10 or 0x1310 in an XML-RPC message. Bummer. Especially with the ~30% bloat incurred by base64 encoding :(
I feel like the absence of base-64 encoding is an oversight in the protocol, along with the absence of a "null" type (which would correspond to "None".) That's why I think it's not a kludge to extend XML-RPC. But why is the 30% bloat an issue? The important parts of the base64 module are in C and the encoding and decoding is fast.
In fact it's time to convert xmlrpclib to use the Expat module (via SAX) in Python 2.1. It should speed it up dramatically.
I wish we had the luxury of moving to python 2.1 :(
Actually the sax / expat module is also available for Python 1.5.2, if that helps. Shane