Technically speaking, Thrift is "language-independent"
serialization-deserialization format with clean approach to backward
I think Thrift (or something like that) can be useful, as it can generate
serializers/deserializers for lots of languages.
PostgreSQL's "binary" format is tied to the PostgreSQL and it has to be
reimplemented for each and every client language.
"text" format is non-trivial as well (e.g. it is hard to get quoting right
for structs, and text is server-locale-dependent)