#bsa #hash #morrowind

无需 std bsa3-hash

用于 *The Elder Scrolls III: Morrowind* 的 BSA 文件中使用的哈希函数

4 个稳定版本

3.0.0 2021 年 11 月 14 日
2.0.0 2021 年 11 月 12 日
1.0.2 2019 年 8 月 29 日
1.0.1 2019 年 5 月 26 日

#469算法

Apache-2.0 OR MIT

1MB
14K SLoC

bsa3-hash

GitHub Actions Crates.io Docs.rs

bsa3-hash 为 The Elder Scrolls III: Morrowind 的 BSA 文件中使用的哈希函数提供了 Rust 实现。

用法

将 bsa3-hash 添加到您的 Cargo.toml

[dependencies]
bsa3-hash = "^3.0.0"

然后根据需要调用 bsa3_hash::calculate

fn main() {
    assert_eq!(
        bsa3_hash::calculate(r"meshes\m\probe_journeyman_01.nif".as_bytes()),
        0x0002_0336, 0xBB50_0695
    );
}

基准测试

bsa3-hash 支持 criterion 基准测试。目前我们对三个数据集进行了测试和基准测试:Morrowind.bsa、Tribunal.bsa 和 Bloodmoon.bsa 的文件名/哈希列表。要运行基准测试,请按以下步骤操作

  • 如果尚未安装,请安装 cargo-criterion
    cargo install cargo-criterion
    
  • 在 crate 目录中运行 cargo-criterion
    cargo criterion
    

许可证

根据您的选择,许可为以下之一

贡献

除非您明确声明,否则根据 Apache-2.0 许可证定义,您有意提交的任何贡献,包括在作品中包含的贡献,都应按照上述方式双许可,不附加任何额外条款或条件。

无运行时依赖