Probably answered before, but I wondered whether there is a standard implementation for portable binary archives available.
I'm not quite sure what you mean by "standard implementation" - there are a number of commonly used portable binary approaches or standards. For example, XDR (IETF standard) has been around for quite a while: http://tools.ietf.org/rfc/rfc4506.txt as well as SDXF (not sure how much it is used): http://tools.ietf.org/rfc/rfc3072.txt There's CDR, used in CORBA and other libraries or frameworks where interoperability is needed: http://en.wikipedia.org/wiki/Common_Data_Representation I'm sure there's a gaggle of home-grown approaches (I've written some myself) as well as other industry standard approaches. If you're talking about portable binary archives for Boost.Serialization, there's been talk, but I'm not sure what the status is - anyone have an implementation? I'd be willing to help / work with someone on it. Beman submitted a nice set of utilities for endian handling, which could be used (something I've also written many times in the past, although not quite as comprehensive as Beman's). Integral byte swapping is pretty straight forward, but floating point is not - besides the obvious representation issues (e.g. IEEE 754 or not), there's some non-obvious issues dealing with floating point normalization and special values (infinity, etc). For example, I wrote one template function which returned (by value) byte swapped entities, but found it would silently change floating point values depending on the value, platform, compiler version, register usage, etc. Turns out normalization would occur on the "by value" return, changing bits in the byte swapped floating point number. What use cases and constraints do you envision? There's lots of tradeoffs and design choices already discussed in previous Boost threads. Personally I think portably binary archiving through Boost.Serialization is long overdue. Cliff