I am looking for a C++ serialization library/framework with these features:
1. Binary: Space efficient binary format.
2. Programming language independent: Should have an implementation in most common popular programming languages.
3. Portable across platforms: Should be able to write a file on a FreeBSD web server and be able to read that same file on an Android device.
4. Open format: The format of the generated files should be well documented.
5. Clearly declared file structure: There should be a way to put down the file structure in one place and track changes to it.
6. Non-intrusive: Users of the library must not be required to make changes to existing data-structures that they want to serialize/deserialize. For example, I should not be required to derive my class from a “Serializable” class.
7. Large files: Should work fine for files several GB in size.
With the current state of the art, this is what is on offer:
|Programming Language Independent||Y||?||N|
|Portable across platforms||Y||N||N|
|Clearly declared file structure||Y||N||N|
|Old version of code can read files created by newer versions||Y||N||?|