1
0
Fork 0
mirror of https://github.com/BLAKE3-team/BLAKE3 synced 2024-05-19 21:36:04 +02:00
BLAKE3/b3sum
Jack O'Connor c5c07bb337 refactor b3sum to support --check
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.
2020-05-13 18:23:59 -04:00
..
src refactor b3sum to support --check 2020-05-13 18:23:59 -04:00
tests refactor b3sum to support --check 2020-05-13 18:23:59 -04:00
Cargo.toml switch from assert_cmd to CARGO_BIN_EXE_* 2020-05-13 17:47:59 -04:00
README.md version 0.3.3 2020-04-28 11:20:39 -04:00

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.