#binary #data #serialization #data-encoding #serde #data-file

bakery

从结构化文本数据文件反序列化二进制对象

4个版本

0.1.3 2021年11月27日
0.1.2 2021年11月21日
0.1.1 2021年11月20日
0.1.0 2021年10月24日

#65 in #data-encoding

MIT/Apache

89KB
2K SLoC

此crate允许将文本数据文件加载为序列化的二进制对象。

数据文件可以具有类似于Rust数据定义的语法,并必须遵循在配方文件中定义或在程序中使用Recipe trait构建的配方(或模式)。

当解析数据文件时,将构建一个二进制表示并将其缓存到二进制文件中,然后可以使用例如serdebincode crate轻松反序列化此二进制表示。如果数据文件未修改,则加载它使用缓存,因此非常快。这对于例如以可理解和易于修改的格式存储复杂的资产文件非常有效。它也可能用于加载配置文件。

基本示例

use bakery::load_from_string;
use bakery_derive::Recipe;
use serde::Deserialize;

#[derive(Recipe, Deserialize)]
struct GameConfig {
    width: u32,
    height: u32,
    fullscreen: bool
}

let config: GameConfig = load_from_string("width: 1024, height: 768, fullscreen: true").unwrap();

依赖项

~5MB
~105K SLoC