of course, now we have json....
I guess I don't quite understand that. I can get how it works for simple data types (integers, floating point numbers, perhaps strings) but it seems like it breaks down pretty quickly for anything with a more complex representation (structures with multiple members, for instance; how does one deal with padding, etc?). "Reader makes right" makes some sense for any pair of sender/receiver architectures, but once you have more than a handful of machine types with potentially different ABIs/representations/alignment requirements, etc, then it seems like you're an n^2 mutual ABI understanding issue. Perhaps I'm being naive in assuming that multi-data structures are just written out in host format, but if you, say, write element by element to avoid that, then it seems like you're already nearly at an architecture independent data representation anyway, so what does NOT having that buy you? I guess it's potentially faster if you don't have to swab bytes between similar architectures?