b3sum

A command line utility for calculating BLAKE3 hashes, similar to Coreutils tools like b2sum or md5sum.

``` b3sum 0.3.5

USAGE: b3sum [FLAGS] [OPTIONS] [FILE]...

FLAGS: -c, --check Reads BLAKE3 sums from the [file]s and checks them -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. Currently this also disables multithreading. --no-names Omits filenames in the output --quiet Skips printing OK for each successfully verified file. Must be used with --check. --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 Uses the key derivation mode, with the given context string. Cannot be used with --keyed. -l, --length The number of output bytes, prior to hex encoding (default 32) --num-threads 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, RAYONNUMTHREADS is also respected.

ARGS: ... Files to hash, or checkfiles to check. When no file is given, or when - is given, read standard input. ```

See also this document about how the --check flag works.

Example

Hash the file foo.txt:

bash b3sum foo.txt

Time hashing a gigabyte of data, to see how fast it is:

```bash

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.

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.