Changes since version 0.2.2: - Bug fix: Commit 13556be fixes a crash on Windows when using the SSE4.1 assembly implementation (--features=c, set by default for b3sum). This is undefined behavior and therefore a potential security issue. - b3sum now supports the --num-threads flag. - The C API now includes a blake3_hasher_finalize_seek() function, which returns output from any position in the extended output stream. - Build fix: Commit 5fad419 fixes a compiler error in the AVX-512 C intrinsics implementation targeting the Windows GNU ABI. |
||
|---|---|---|
| .. | ||
| src | ||
| tests | ||
| Cargo.toml | ||
| README.md | ||
b3sum
A command line utility for calculating
BLAKE3 hashes, similar to
Coreutils tools like b2sum or md5sum.
b3sum 0.2.3
USAGE:
b3sum [FLAGS] [OPTIONS] [file]...
FLAGS:
-h, --help Prints help information
--keyed Uses the keyed mode. The secret key is read from standard
input, and it must be exactly 32 raw bytes.
--no-mmap Disables memory mapping
--no-names Omits filenames in the output
--raw Writes raw output bytes to stdout, rather than hex.
--no-names is implied. In this case, only a single
input is allowed.
-V, --version Prints version information
OPTIONS:
--derive-key <CONTEXT> Uses the key derivation mode, with the given
context string. Cannot be used with --keyed.
-l, --length <LEN> The number of output bytes, prior to hex
encoding (default 32)
--num-threads <NUM> The maximum number of threads to use. By
default, this is the number of logical cores.
If this flag is omitted, or if its value is 0,
RAYON_NUM_THREADS is also respected.
ARGS:
<file>...
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
The standard way to install b3sum is:
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.
By default, b3sum enables the assembly implementations, AVX-512
support, and multi-threading features of the underlying
blake3 crate. To avoid this (for
example, if your C compiler does not support AVX-512), you can use
Cargo's --no-default-features flag.