Skip to content

c0m4r/rust-whirlpoolsum

Repository files navigation

Rust License: CC0-1.0

image

Rust version of the whirlpoolsum that prints and checks WHIRLPOOL 512-bit checksums.

Vibe-coded with Qwen3 (Max+Coder) / Claude Sonnet 4.5 (Thinking+Extended) / Gemini 3 Pro (High).

Integrates Seccomp/BPF sandboxing, Landlock and AppArmor profile as a measure of protection against supply chain attacks.

Quick install (x86_64/glibc)

wget https://github.com/c0m4r/rust-whirlpoolsum/releases/download/0.9.3/whirlpoolsum
echo "bc1b8a333c9c99fca7bdc7e7b7451c372311531db203b1683e5aae5318256569  whirlpoolsum" | sha256sum -c || rm -f whirlpoolsum
sudo mv whirlpoolsum /usr/local/bin/
sudo chmod +x /usr/local/bin/whirlpoolsum
echo "4c9d4ab9c9f20cc8d54e9f4b5cee186697cb80556f47dab4265dec172f880120a3a060df66ec4be1a7d427f540d2a7aa58d12fa600b789ced14adb485911bca9  /usr/local/bin/whirlpoolsum" | whirlpoolsum -c
whirlpoolsum -V

On Alpine install gcompat with apk add gcompat

Other platforms (ARM64, RISC-V, Windows x64)

Get the latest binaries at https://github.com/c0m4r/rust-whirlpoolsum/releases/tag/0.9.3

Build from source

  1. Install Rust
  2. Run cargo build --release or use ./build.sh for extended testing
  3. You'll find the binary executable in ./target/release/whirlpoolsum

Cross-compile

cargo install cross --git https://github.com/cross-rs/cross
rustc --print=target-list # find target and consult it with the one on cross-rs page
rustup target add aarch64-unknown-linux-gnu
rustup target add riscv64gc-unknown-linux-gnu
rustup target add x86_64-pc-windows-gnu
rustup target add x86_64-unknown-linux-musl
./cross.sh || cross build --target aarch64-unknown-linux-gnu --release

Usage

Text checksum (stdin)

echo -n "All your base are belong to us" | whirlpoolsum

File checksum

whirlpoolsum example.txt

Multiple files checksums (with multithreading)

whirlpoolsum --max-files 1000 --max-file-size 100M /usr/sbin/*

Verify file checksum (stdin)

echo -n "abcdef12345(...)  example.txt" | whirlpoolsum -c

Verify file checksum with a checksum file

whirlpoolsum -c example.txt.wrl

Print program version

whirlpoolsum --version

Benchmarking

Benchmark (measure time and throughput for a given filename(s))

whirlpoolsum --benchmark example.txt

Benchmark (system test with score)

whirlpoolsum --benchmark

TUI

Text-based UI with basic functionality using ratatui

whirlpoolsum --tui

...and a snake game as a bonus :)

Configuration options

--max-file-size <MAX_FILE_SIZE>  Maximum file size (e.g., 1G, 512M) [default: 10G]
--max-files <MAX_FILES>          Maximum number of files to process [default: 10000]

License

Public Domain / CC0 1.0 Universal

Credits

Logo has been AI generated by Gemini 2.5 Flash Image (Nano Banana)

Ferris the crab by Karen Rustad Tölva

About

Rust version of the whirlpoolsum that prints and checks WHIRLPOOL 512-bit checksums.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published