Well, sounds like that would be 5 new archives and/or derivations. You've got a lot of work to do. Robert Ramey. Cliff Green wrote:
Possible choices (some already discussed):
1. Absolute smallest space -
The easiest way to do this is to use a streambuffer which has compression built in. This is included in the boost stream i/o library. Using such a stream will compress - almost to the max - any of the boost archive types.
2. Absolute fastest speed
I doubt the native binary can be slower than anything else as all it does is copy the bytes to the streambuffer. Of course its not portable - but it will be the fastest.
3. Flexibility versus simplicity - e.g. whether object ids, tags, implicit structuring and nesting, etc are directly supported versus just providing support for fundamental types, and (relatively) simple sequences.
Without the "extras" its not going to be compatible with boost serialization. It might be useful in its own right - but its not going to be the same thing.
4. Floating point support - IEE 754 formats only versus later standards (and long double), other non-typical floating point formats, and probably a host of other possibilities for binary floating point.
of course all floating point types are handled in a portable way by the current text archives so this is just a binary archive issue. (except for portable NaN and others which is a general i/o rather than serialization problem)
5. Adherence to a commonly used (or even not that commonly used) protocol - XDR, CDR, etc.
If someone were really interested in this I would expect that he could make some progress in this area. I'm not sure how useful it would be but who knows? Robert Ramey