libnop是一个仅用于序列化和反序列化C++数据类型的头库,无需外部代码生成器或运行时支持库。唯一的强制性要求是一个支持C++14标准的编译器。
libnop有以下目标:
- 使简单的序列化任务变得容易,使复杂的任务变得易于处理。
- 在C++语言中移除对代码生成器和模式文件描述数据类型、格式和协议的依赖。
- 避免运行序列化操作时可能需要的额外运行时间。
- 提供现代功能,如双向二进制兼容性、数据验证、类型安全性和类型可替代性。
- 以最少的工作量处理内部类型、常见的STL类型和容器以及用户定义的类型。
- 生成易于分析的代码。
- 避免动态内存的分配时使用。