#config-file #save-load #binary #toml #json #hash

binconf

轻松保存和加载二进制配置文件

9个版本

0.2.700 2024年1月6日
0.2.630 2023年11月10日
0.2.621 2023年7月29日
0.2.601 2023年6月13日
0.1.501 2023年5月27日

#124 in 配置

37 每月下载次数

MIT 许可证

80KB
2K SLoC

binconf

Binconf Workflow

轻松保存和加载二进制配置文件。

数据在序列化过程中进行哈希处理(XXH3),在反序列化时进行验证,因此您可以确信数据没有被损坏。

使用XXH3的Crate: xxhash-rust


您还可以使用 tomljsonyamlron 保存配置。您需要启用相应的功能才能使用此功能。 (不支持 tomljsonyamlron 的哈希验证)

可选功能

  • bincode-conf:启用以二进制形式保存和加载配置。(默认启用)
  • toml-conf:启用使用 toml 保存和加载配置。
  • json-conf:启用使用 json 保存和加载配置。
  • yaml-conf:启用使用 yaml 保存和加载配置。
  • ron-conf:启用使用 ron 保存和加载配置。
  • full:启用所有配置类型。这使您能够使用 tomljsonyamlron 以及二进制进行保存和加载。

禁用默认功能

如果您只想使用其中一个功能,您可以禁用默认功能并启用您想要使用的功能。

例如,仅使用 toml

[dependencies.binconf]
features = ["toml-conf"]
default-features = false

用法

use binconf::ConfigLocation::{Cache, Config, LocalData, Cwd};
use serde::{Deserialize, Serialize};

#[derive(Default, Serialize, Deserialize, Clone)]
struct TestConfig {
    strings: String,
    vecs: Vec<u8>,
}

fn main() {
    let config = TestConfig {
        strings: String::from("binconf"),
        vecs: vec![1, 2, 3, 4, 5],
    };

    // Save the data at the user's config directory
    binconf::store_bin("binconf-app", Some("config.bin"), Config, &config).unwrap();

    // Load the data from the user's config directory
    let stored =
        binconf::load_bin::<TestConfig>("binconf-app", Some("config.bin"), Config, false).unwrap();

    assert_eq!(stored.strings, config.strings);
    assert_eq!(stored.vecs, config.vecs);
}

许可证

本项目采用MIT许可证 - 请参阅LICENSE文件以获取详细信息。

依赖关系

~0.5–12MB
~92K SLoC