#blake3 #sha-256 #integrity #b3 #file-exists #parallel-iterator #sha256sum

bin+lib fhc

文件哈希检查器(SHA256,BLAKE3)

14 个版本 (6 个重大更新)

0.7.1 2024年8月16日
0.7.0 2024年7月26日
0.6.0 2024年1月25日
0.2.2 2020年11月18日
0.2.1 2020年2月9日

776命令行工具

Download history 4/week @ 2024-05-20 3/week @ 2024-06-03 1/week @ 2024-06-10 2/week @ 2024-07-01 103/week @ 2024-07-22 37/week @ 2024-07-29 114/week @ 2024-08-12

每月254次 下载

MIT 许可证

73KB
234

关于

文件哈希检查器是一个满足以下要求的最小解决方案:

  • 按顺序(循环、迭代器)或并行(线程、消息、rayon 并行迭代器)计算一个或多个文件的 SHA256 或 BLAKE3 哈希。
  • 提供库 API
  • 通过 criterion 进行基准测试
  • 最小依赖:blake3sha2anyhowclaprayon
  • 提供 CLI 工具
    • sha256sumb3sum 更简单、更直接的使用方式
    • 将哈希保存到相邻的哈希文件中(如果不存在)(.sha256.b3)
    • 将当前哈希与相邻的哈希文件(如果存在)进行比较

用法

$ fhc -h
File hash checker (SHA256, BLAKE3)

Usage: fhc [OPTIONS] [FILES]...

Arguments:
  [FILES]...  File(s)

Options:
  -a <ALGORITHM>           Algorithm [default: blake3] [possible values: blake3,
                           sha256]
  -p, --process <PROCESS>  Approach for processing multiple files [default:
                           rayon-par-iter] [possible values: rayon-par-iter,
                           sequential-for-loop, sequential-iter, threading,
                           messaging]
  -h, --help               Print help
  -V, --version            Print version
$ fhc -V
fhc 0.7.1

示例

  1. 运行 fhc 对一个或多个文件进行操作,计算并打印每个文件的 SHA256 或 BLAKE3 哈希到 stdout 并保存到相邻的哈希文件中。
  2. 在任何后续时间,运行 fhc 对一个或多个文件与相邻的哈希文件进行操作,重新计算每个文件的哈希,如果哈希匹配则报告 OK,如果哈希不匹配则报告 FAILED

基准测试

变更日志

  • 0.1.0 (2020-02-03):首次发布
  • 0.2.1 (2020-02-09):生成与 .sha256 文件兼容的 sha256sum -c
  • 0.2.2 (2020-11-18):更新 sha2 crate 版本
  • 0.3.0 (2024-01-07):现代化
  • 0.4.0 (2024-01-24):将sequential进程选项重命名为sequentialforloop;添加sequentialiterrayonpariter进程选项;将大部分进程选项逻辑从CLI移动到库中,通过进程选项函数和进程选项run方法;添加criterion基准测试;修复变更日志;更新依赖
    • 0.4.1 (2024-01-24):修复readme
    • 0.4.2 (2024-01-24):修复变更日志
  • 0.5.0 (2024-01-24):添加blake3-a选项
    • 0.5.1 (2024-01-24):修复readme
    • 0.5.2 (2024-01-25):修复文档
    • 0.5.3 (2024-01-25):修复readme
  • 0.6.0 (2024-01-25):将CLI默认值更改为-a blake3-p rayon-par-iter
  • 0.7.0 (2024-07-26):如果文件为零,则打印帮助信息;修复makefile;更新依赖
    • 0.7.1 (2024-08-16):修复makefile;修复变更日志;修复readme;更新依赖

依赖

~6–18MB
~228K SLoC