CAPCOM-TD-OSS/REDox
High-performance, token-based structured data engine for .NET. A core component of REX, the technology behind CAPCOM's next-generation game engine.
解决的问题
RE:Dox 是一个面向 .NET 的高性能结构化数据引擎,解决了速度、内存使用和可编辑性之间的权衡。它通过将各种数据格式(JSON、CBOR、MessagePack 等)转换为紧凑的、共享的基于令牌的中间表示,提供了一种统一的方式来解析、编辑和序列化这些格式。
工作原理
RE:Dox 不创建沉重的对象树,而是将输入解析为固定大小的 64 位令牌数组。该结构既充当紧凑的文档模型,又充当序列化器的公共层。由于该结构完全可寻址,引擎可以执行高级操作,如自动并行反序列化、乱序构造函数绑定和值的惰性解码。它使用不同的读写路径来优化性能:写入时直接将数据流式传输到缓冲区,而读取时构建令牌 DOM 以实现随机访问和高效操作。
适用对象
该项目面向在性能关键型应用程序(如游戏引擎或处理大型复杂数据负载的系统)上工作的 .NET 开发人员,他们需要比标准库更快的序列化速度和更低的内存分配。
亮点
- 高性能: 与 System.Text.Json 相比,提供显著更快的序列化和反序列化,并减少内存分配。
- 并行处理: 自动检测大型数组并并行反序列化元素,以最大化 CPU 利用率。
- 统一 API: 在多种格式(包括 JSON、CBOR、MessagePack 和 INI)中使用单一转换器模型。
- 可变的令牌 DOM: 允许就地编辑(插入、删除、替换)结构化数据,而无需重建整个文档。
- 保留琐碎内容: 支持编辑 JSON5,同时保留注释和空白。
- 兼容性: 包含用于现有序列化器(如 Newtonsoft.Json 和 System.Text.Json)的层。
相关
- 项目
- 项目
- 项目
- 项目
- 项目