extprot: extensible binary protocols for cross-language communication and long-term serialization