A simple hasher that supports multiple algorithms and directory traversal
Find a file
zevaryx 3c8d92ca8f
All checks were successful
/ test (push) Successful in 21s
/ lint (pull_request) Successful in 13s
Add badges to readme
2025-12-02 23:06:53 -07:00
.cargo Fix macos building 2025-08-29 03:24:35 +00:00
.forgejo/workflows Switch back to basic cargo test, ASLR breaks tarpaulin 2025-12-02 21:18:51 -07:00
src Use tarpaulin, apply clippy changes 2025-12-02 20:47:46 -07:00
tests Better tests, error handling, and some cleaned up code 2025-12-02 13:18:02 -07:00
.gitignore Use tarpaulin, apply clippy changes 2025-12-02 20:47:46 -07:00
Cargo.lock Add status and quiet modes 2025-12-02 20:08:50 -07:00
Cargo.toml Add status and quiet modes 2025-12-02 20:08:50 -07:00
install.sh Fix install script OS detection 2025-11-24 13:49:47 -07:00
README.md Add badges to readme 2025-12-02 23:06:53 -07:00

hasher-rs

Latest Release Test Status

A fully-featured recursive hasher application for file validation. Fully compatible with standard hash outputs (i.e. md5sum, sha256sum, etc)

Usage

A simple hasher that supports multiple algorithms and directory traversal

Usage: hasher.exe [OPTIONS] [FILE]

Arguments:
  [FILE]  The file, folder, or stdin to hash [default: -]

Options:
  -a, --algorithm <ALGORITHM>        Must be one of: blake2, blake3, md5, sha1, sha256, sha512, sha3_256, sha3_512, xxh3_128, xxh3_64, xxh64, xxh32, fnv [default: blake3]
  -o, --output <OUTPUT>              Optional. File to save hashsum to
      --no-mmap                      Disable mmap in blake3. Also disables the progress bar for blake3
      --no-progress                  Disable progress bar
  -c, --check                        Switch to hashsum check mode. File must be a hashsum file
  -q, --quiet                        Don't print OK for each successfully verified file
  -s, --status                       Only return status code
      --exclude <EXCLUDE>            Add a path to ignore
      --include <INCLUDE>            Add a path to include
      --max-depth <MAX_DEPTH>        Max recursion depth
      --max-filesize <MAX_FILESIZE>  Max file size to show
      --follow-links                 Follow links
      --hidden                       Walk hidden directories
      --no-ignore                    Ignore .ignore files
      --no-gitignore                 Ignore .gitignore files
      --no-git-exclude               Ignore .git/info/exclude
      --no-global-gitignore          Ignore global gitignore files
      --no-parents                   Ignore parent directory ignore files
      --legacy                       Legacy format (don't print algorithm)
  -h, --help                         Print help
  -V, --version                      Print version

Hashing text input

You can also use hasher inline:

echo "test" | hasher -a sha256

Installing

Run the following:

curl --proto '=https' --tlsv1.2 -sSf https://git.zevaryx.com/zevaryx/hasher-rs/raw/branch/main/install.sh | sh