2019-12-12 08:13:16 +01:00
|
|
|
# b3sum
|
2019-12-13 19:10:05 +01:00
|
|
|
|
2020-02-19 22:38:02 +01:00
|
|
|
A command line utility for calculating
|
|
|
|
[BLAKE3](https://github.com/BLAKE3-team/BLAKE3) hashes, similar to
|
|
|
|
Coreutils tools like `b2sum` or `md5sum`.
|
|
|
|
|
2019-12-13 19:10:05 +01:00
|
|
|
```
|
2022-10-03 05:07:33 +02:00
|
|
|
Usage: b3sum [OPTIONS] [FILE]...
|
|
|
|
|
|
|
|
Arguments:
|
2022-10-03 06:28:52 +02:00
|
|
|
[FILE]... Files to hash, or checkfiles to check
|
2022-10-03 05:07:33 +02:00
|
|
|
|
|
|
|
Options:
|
2023-06-08 21:24:05 +02:00
|
|
|
--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
|
2022-11-20 21:39:12 +01:00
|
|
|
-l, --length <LEN> The number of output bytes, before hex encoding [default: 32]
|
2023-06-08 21:24:05 +02:00
|
|
|
--seek <SEEK> The starting output byte offset, before hex encoding [default: 0]
|
2022-11-20 21:39:12 +01:00
|
|
|
--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
|
2022-11-21 02:23:53 +01:00
|
|
|
-c, --check Read BLAKE3 sums from the [FILE]s and check them
|
2023-06-08 21:24:05 +02:00
|
|
|
--quiet Skip printing OK for each checked file
|
|
|
|
-h, --help Print help (see more with '--help')
|
|
|
|
-V, --version Print version
|
2019-12-13 19:10:05 +01:00
|
|
|
```
|
|
|
|
|
2020-05-14 20:02:37 +02:00
|
|
|
See also [this document about how the `--check` flag
|
2020-09-14 17:17:39 +02:00
|
|
|
works](https://github.com/BLAKE3-team/BLAKE3/blob/master/b3sum/what_does_check_do.md).
|
2020-05-14 20:02:37 +02:00
|
|
|
|
2020-02-19 22:38:02 +01:00
|
|
|
# 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
|
2019-12-13 19:10:05 +01:00
|
|
|
|
2020-05-26 06:25:39 +02:00
|
|
|
Prebuilt binaries are available for Linux, Windows, and macOS (requiring
|
|
|
|
the [unidentified developer
|
|
|
|
workaround](https://support.apple.com/guide/mac-help/open-a-mac-app-from-an-unidentified-developer-mh40616/mac))
|
|
|
|
on the [releases page](https://github.com/BLAKE3-team/BLAKE3/releases).
|
|
|
|
If you've [installed Rust and
|
|
|
|
Cargo](https://doc.rust-lang.org/cargo/getting-started/installation.html),
|
|
|
|
you can also build `b3sum` yourself with:
|
2020-01-15 16:46:47 +01:00
|
|
|
|
|
|
|
```
|
|
|
|
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`.
|