Erlang has amazing default serialization and deserialization. term_to_binary(T) and binary_to_term(B)
Parsing the binary blobs for interop is annoying, see for exmaple the Wings file format, made almost entirely of Erlang serialized objects:
http://en.wikibooks.org/wiki/Wings_3D/User_Manual/Wings_File...