Command-line Tool | Graphical User Interface |
---|---|
Download the app from the releases page, extract it an run it.
Install Rust and Cargo: https://rustup.rs/
Install the app with:
cargo install sapphire-hash
Run with:
sapphire-hash --algorithm <ALGORITHM> <DIRECTORY>
Where:
DIRECTORY
can be either the relative or the full path to the desired directory or file.ALGORITHM
is the desired hash algorithm. Only algorithms implemented by OpenSSL are available:md5
sha1
sha224
sha256
sha384
sha512
sha3_224
sha3_256
sha3_384
sha3_512
shake128
shake256
ripemd160
sm3
Optionally, you can add an --output <OUTPUT_PATH>
to specify the output. End the file in .csv
to generate a CSV report.
You may also enable logging by using the RUST_LOG=trace
environment variable.
If you want to pipe the results and log results to separate files, you may use:
RUST_LOG=trace sapphire-hash --algorithm ALGORITHM DIRECTORY | tee result.txt 2>/dev/stdout | tee log.txt
- Rust (https://rustup.rs/)
- Build Tools:
- Ubuntu:
build-essential
- Ubuntu:
- OpenSSL:
- Ubuntu:
sudo apt install libssl-dev
- Windows: Use vcpkg and install by running:
vcpkg install openssl
- MacOS: Install pkg-config:
brew install pkg-config
- Ubuntu:
- Flutter and other native dependencies for GUI development (see flutter_gui/README.md)
Clone the repository.
If you're on Windows you might need to specify the path to OpenSSL using the OPENSSL_DIR
environment variable. This is the path that has the lib\
and include\
folders. You can do this by running:
# Windows only
$env:OPENSSL_DIR="C:\path_to_vckpg\packages\openssl_x64-windows"
Run cargo build
.
Use the app like so:
./target/debug/sapphire-hash --algorithm ALGORITHM DIRECTORY
Run:
OPENSSL_STATIC=true cargo build --release
Use the app like so:
./target/release/sapphire-hash --algorithm ALGORITHM DIRECTORY
Run:
cargo test
Use the script for creating random files: scripts/generate_example_files.sh
Check the script code for available options.
Run:
RUSTFLAGS=-Dwarnings cargo clippy --all-targets --all-features
Whenever you update the flutter_bridge
project, be sure to run the codegen so that the Flutter project picks up the changes. Inside gui_flutter
, run:
flutter_rust_bridge_codegen generate
See more about GUI development in flutter_gui/README.md