c5c07bb337
This is an overall cleanup of everything that b3sum is doing, especially file opening and memory mapping, which makes it easier for the regular hashing mode to share code with the checking mode. |
||
---|---|---|
.. | ||
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.3.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.