#hash #性能测试 #非加密 #函数 #哈希 #测试平台 #评估

bin+lib bitbelay

非加密哈希函数的性能评估测试平台

2 个版本

0.1.1 2024年1月26日
0.1.0 2024年1月25日

#245 in Testing

MIT/Apache

53KB
454 代码行数(不含注释)

bitbelay

CI: Status License: Apache 2.0 License: MIT

非加密哈希函数的性能评估测试平台。

请求功能 · 报告错误 · ⭐ 考虑关注此仓库!⭐

Bitbelay是一个测试非加密哈希函数性能和所需特性的框架。该项目之所以命名为Bitbelay,是因为(a)它关注评估哈希函数输出的位特性,以及(b)“belaying”这个词唤起了(测试)平台的意象。

Bitbelay的设计与其它流行的哈希测试框架有所不同。例如,它不提供一个单一的用于跨多个哈希函数进行性能基准测试的二进制文件。相反,它(a)由一系列用于测试哈希函数的高质量工具库组成,并且(b)允许哈希开发者轻松地将他们的哈希函数包装在命令行工具中进行性能测试。

命令行工具通常包含用于描述单个哈希函数的设施,并在crates.io或其它地方发布时,通常会按照约定命名 crate 和/或相关的命令行工具,例如 bitbelay-[HASHNAME](例如,bitbelay-ahash,对应于 ahash)以便于识别。

🎨 功能

  • 高级哈希特性描述。 Bitbelay的主要目标是提供用于描述非加密哈希函数性能和质量的设施。因此,它包含了一系列专门设计的测试套件。
  • 多种数据提供商。 Bitbelay 包含一系列数据提供商,以促进对各种输入数据类型进行散列函数评估。这种多样性使得能够更全面地理解散列函数在不同场景下的性能。此外,可以将自定义数据提供商无缝集成到框架中。
  • 散列函数开发的即插即用测试。 Bitbelay 旨在简化散列函数的开发过程——特别是在 Rust 中!为此,它包括方便地将散列函数包装成命令行工具的设施,在其中可以运行一系列测试。

📚 入门指南

您可以通过 Github 仓库将 bitbelay 添加为依赖项。

cargo add bitbelay

接下来,您可以使用 bitbelay::cli::wrapper() 函数快速包装感兴趣的散列函数,并生成用于评估它的命令行工具。对于这个例子,我们简单地引入 Rust 的 d

use std::hash::RandomState;

pub fn main() -> anyhow::Result<()> {
    bitbelay::cli::wrapper(RandomState::default())
}

示例

您也可以查看 示例,以了解您可以如何使用该库的各种方式。

🖥️ 开发

为了建立开发环境,请使用以下命令。

# Clone the repository
git clone [email protected]:claymcleod/bitbelay.git
cd bitbelay 

# Build the crate in release mode
cargo build --release

# List out the examples
cargo run --release --example

🚧️ 测试

在提交任何拉取请求之前,请确保代码通过以下检查。

# Run the project's tests.
cargo test --all-features

# Ensure the project doesn't have any linting warnings.
cargo clippy --all-features

# Ensure the project passes `cargo fmt`.
cargo fmt --check

# Ensure the docs build successfully.
cargo doc

最低支持的 Rust 版本 (MSRV)

由于 bitbelay 的版本低于 1.0,因此尚未声明 MSRV。

🤝 贡献

欢迎贡献、问题和特性请求!请随意查看 问题页面

📝 许可证

该项目可以根据您的意愿以 Apache 2.0MIT 许可证发布。

版权所有 © 2024-Present Clay McLeod

依赖项

~0.1–12MB
~89K SLoC