Hasty Briefsbeta

双语

Packing Binary Is Fun

7 hours ago
  • 作者受到JSON存储的批评,决定创建自定义二进制格式。
  • 他们构建了一个使用可变长度整数(LEB128)和包含类型、长度及字段编号的标头的二进制打包系统。
  • 设计了一种模式语言来定义数据结构,避免了每个值存储类型信息的需要。
  • 实现包括词法分析器、语法分析器、抽象语法树、语义分析器、动态打包器和多语言代码生成器。
  • 与JSON相比,二进制格式实现了高达80%的文件大小缩减,如游戏角色示例所示。
  • 该项目产生了一个命令行工具,能够生成C/Python代码,并使用模式将JSON打包成二进制。