/htree

Multi-threaded, fast message digest tool

Primary LanguageCMakeGNU General Public License v3.0GPL-3.0

HTREE

SUMMARY

htree is a message digest tool (like md5sum, sha256sum) but fully multi-threaded.

This make significantly faster the creation of checksum for large files.

USAGE

htree [file1] [file...] [filen]

EXAMPLE

ls -lh bigtarball.tar.gz 
-rw-rw-r-- 1 X X 2,4G mars  27 21:38 bigtarball.tar.gz


time htree bigtarball.tar.gz 
22dbbb9fc312070f987789d7fc3ed605529434d2da5823e3c058ce8c749cbd85 bigtarball.tar.gz

real	0m1,717s
user	0m11,328s
sys	0m0,696s

time md5sum bigtarball.tar.gz 
34cbee16ad07f1aa6e912d4c7c42d98a  bigtarball.tar.gz

real	0m3,940s
user	0m3,749s
sys	0m0,192s

ALGORITHM

Most hashing function beings purely sequential, htree uses by default a decomposition in 16MiB block size and a Merkle tree to acheive parallelism.

The default hash function used by htree is the SHA-3 candidate blake2b.

The implementation of htree is simple and fits in a single < 300 lines file.

DEPENDENCIES

None. C++11 compatible compiler

Embedded component : hadoken, digestpp

LICENSE

GPLv3