我正在开始研究一种新软件,最终需要一些强大且可扩展的文件IO.那里有很多格式.XML,JSON,INI等等.但是,总有一些优点和缺点,所以我想我会要求一些社区输入.
以下是一些粗略的要求:
- 格式是"标准"......如果我不需要,我不想重新发明轮子.它不一定是正式的IEEE标准,但你可以谷歌并获得一些新用户的信息,可能有一些超越vi的支持工具(编辑器).(虽然软件用户通常会精通计算机并且很乐意使用vi.)
- 轻松与C++集成.我不想让100mb库和三个不同的编译器来启动它.
- 支持表格输入(2d,n维)
- 支持POD类型
- 可以扩展,因为需要更多输入,可以很好地绑定变量等.
- 解析速度并不十分重要
- 理想情况下,尽可能易于书写(反映)
- 适用于Windows和Linux
- 支持合成(一个文件引用另一个文件来读取,依此类推.)
- 人类可读
在一个完美的世界中,我会使用一个只有头的库或一些干净的STL实现,但如果它运行良好,我可以利用Boost或一些小的外部库.
那么,您对各种格式有何看法?缺点?好处?
编辑
要考虑的选项?还有什么要补充的?
- XML
- YAML
- SQLite的
- Google协议缓冲区
- 提升序列化
- INI
- JSON