1个不稳定版本
0.1.0 | 2024年1月25日 |
---|
#6 在 #bitbelay
在 4 个crate中使用
41KB
494 行
bitbelay
非加密哈希函数的性能评估工具。
请求功能 · 报告错误 · ⭐ 考虑星标仓库!⭐
Bitbelay是一个用于测试非加密哈希函数性能和理想特性的框架。该项目被命名为这个名字,因为(a)它关注评估哈希函数输出的位特性,以及(b)“belaying”唤起了(测试)工具的意象。
Bitbelay的设计与其他流行的哈希测试框架有所不同 [1]。例如,它不提供一个用于在多个哈希函数上基准测试性能的单个二进制文件。相反,它(a)由一系列crate组成,这些crate提供测试哈希函数的高质量功能,并且(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())
}
示例
您还可以查看示例,了解您可以如何使用这个crate的各种方式。
🖥️ 开发
要设置开发环境,请使用以下命令。
# 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
🚧️ 测试
在提交任何pull请求之前,请确保代码通过以下检查。
# 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.0或MIT。
版权所有 © 2024-Present Clay McLeod。
依赖项
~2–11MB
~64K SLoC