Changes since 1.6.1: - The C implementation has gained multithreading support, based on Intel's oneTBB library. This works similarly to the Rayon-based multithreading used in the Rust implementation. See c/README.md for details. Contributed by @silvanshade (#445). - The Rust implementation has gained a WASM SIMD backend, gated by the `wasm32_simd` Cargo feature. Under Wasmtime on my laptop, this is a 6x performance improvement for large inputs. This backend is currently Rust-only. Contributed by @monoid (#341). - Fixed cross-compilation builds targeting Windows with cargo-xwin. Contributed by @Sporif and @toothbrush7777777 (#230). - Added `b3sum --tag`, which changes the output format. This is for compatibility with GNU checksum tools (which use the same flag) and BSD checksum tools (which use the output format this flag turns on). Contributed by @leahneukirchen (#453) and @dbohdan (#430). |
||
|---|---|---|
| .. | ||
| src | ||
| tests | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| LICENSE_A2 | ||
| LICENSE_A2LLVM | ||
| LICENSE_CC0 | ||
| README.md | ||
| what_does_check_do.md | ||
b3sum
A command line utility for calculating
BLAKE3 hashes, similar to
Coreutils tools like b2sum or md5sum.
Usage: b3sum [OPTIONS] [FILE]...
Arguments:
[FILE]... Files to hash, or checkfiles to check
Options:
--keyed Use the keyed mode, reading the 32-byte key from stdin
--derive-key <CONTEXT> Use the key derivation mode, with the given context string
-l, --length <LEN> The number of output bytes, before hex encoding [default: 32]
--seek <SEEK> The starting output byte offset, before hex encoding [default: 0]
--num-threads <NUM> The maximum number of threads to use
--no-mmap Disable memory mapping
--no-names Omit filenames in the output
--raw Write raw output bytes to stdout, rather than hex
--tag Output BSD-style checksums: BLAKE3 ([FILE]) = [HASH]
-c, --check Read BLAKE3 sums from the [FILE]s and check them
--quiet Skip printing OK for each checked file
-h, --help Print help (see more with '--help')
-V, --version Print version
See also this document about how the --check flag
works.
Example
Hash the file foo.txt:
b3sum foo.txt
Time hashing a gigabyte of data, to see how fast it is:
# Create a 1 GB file.
head -c 1000000000 /dev/zero > /tmp/bigfile
# Hash it with SHA-256.
time openssl sha256 /tmp/bigfile
# Hash it with BLAKE3.
time b3sum /tmp/bigfile
Installation
Prebuilt binaries are available for Linux, Windows, and macOS (requiring
the unidentified developer
workaround)
on the releases page.
If you've installed Rust and
Cargo,
you can also build b3sum yourself with:
cargo install b3sum
On Linux for example, Cargo will put the compiled binary in
~/.cargo/bin. You might want to add that directory to your $PATH, or
rustup might have done it for you when you installed Cargo.
If you want to install directly from this directory, you can run cargo install --path .. Or you can just build with cargo build --release,
which puts the binary at ./target/release/b3sum.