From 7782d98001dc9afc2492adc134335844714ba7f5 Mon Sep 17 00:00:00 2001 From: David Senk Date: Tue, 19 Aug 2025 20:29:01 -0400 Subject: [PATCH] add readme --- README.md | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..16ecbcc --- /dev/null +++ b/README.md @@ -0,0 +1,42 @@ +# hashstream + +A combined streaming hasher. + +Hashstream is designed for needing multiple different hash types from a single stream / file simultaneously. + +Hashstream does not perform any file IO on its own, it only reads and writes to stdio. You must pipe `|` or `<` redirect input to hashstream for processing. + +Useful for coordinating systems that provide different hashtypes for stored blobs. + +# Usage + +` dd if=/dev/zero bs=4M count=250 status=progress | hashstream --sha256 ` +` hashstream --all < /home/user/somefile.dat ` + +``` +Usage: hashstream [OPTIONS] + +Options: + --all Enable all hash types, can not be used with any other hash type flag [DEFAULT] + --sha256 SHA2-256 + --sha3-256 SHA3-256 + --sha1 SHA1 + --crc32-iso CRC_32_ISO_HDLC + --crc32-posix CRC_32_CKSUM + --crc32-xfer CRC_32_XFER + --blake256 Blake2b256 + --blake512 Blake2b512 + --blake3 Blake3 + --md5 MD5 + -h, --help Print help + -V, --version Print version + +``` + +# TODO: + + - Multithreading? Maybe higher performance for multiple hashes at same time? + - More hash types? idk what else may be useful + - Passthrough processing? Maybe output hashes to stderr or socket / named pipe? + - More perf tuning? Is faster than `*sum` utils on Arch for me, but slower under Alma and MacOS... + - Polynym binary? i.e. like busybox, selects set of hashes based on binary / link name?