For clients

At this stage, almost 20 years since the protocol was first deployed, you should start with the spec, and if you're not sure how to proceed, look at the examples in the spec and do what they do. Because that's likely what the people who came before did. Certainly all servers support the spec and the examples.

If it's still not clear, I'd look at the Python implementation as you're doing, also PHP or Java and do what they do. Servers would be certain to have tested with those three big implementations.

I have just published a JavaScript implementation (it's in this repo), and I checked, it generates the literal "true" for true and "false" for false.

But it's very new, and I don't know of anyone who has deployed with it, so I could change what it does.

This comment has been minimized.

edited

My first message was unclear, I'm actually trying to use the javascript client implementation to interact with the external api of Odoo, an ERP that apparently use the python library for managing XMLRPC request. The server threw at me an internal error that was fixed by changing the encoding from true/false to 1/0.

After some research, it seems that only PHP handle both true and 1. This Apache Java library documentation only mention 0 and 1 for boolean. And as stated above it seems that the python library only accept 0 and 1 without throwing an error.