1 unstable release

0.4.1 Dec 21, 2023
0.4.0 Dec 21, 2023
0.3.2 Aug 21, 2023
0.2.0 Aug 12, 2023
0.1.0-rc3 Mar 2, 2022

#318 in Filesystem

MIT license

18KB
286 lines

chksum-cli

GitHub Build MSRV deps.rs unsafe forbidden LICENSE

A simple checksum calculator.

Motivation

Various tools like md5sum, sha1sum, b2sum, sha224sum, etc., allow users to calculate file-based hash digests. However, these tools focus on file-level checksums, making it cumbersome to handle scenarios like calculating digests of whole directories. This motivated the creation of chksum to offer a simplified interface for such use cases.

find dir/ -type f | sort | xargs cat | sha224sum

With chksum, you can achieve the same result with your preferred hash algorithm:

chksum sha2-224 dir/

Key Features

  • Implemented in pure Rust
  • No unsafe code
  • Configurable via Cargo features
  • Multithreaded

Installation

Install the chksum binary using cargo install:

cargo install chksum-cli

Usage

General Help

$ chksum help
A simple checksum calculator.

Usage: chksum [OPTIONS] <COMMAND>

Commands:
  md5       Calculate MD5 digest
  sha1      Calculate SHA-1 digest
  sha2-224  Calculate SHA-2 224 digest
  sha2-256  Calculate SHA-2 256 digest
  sha2-384  Calculate SHA-2 384 digest
  sha2-512  Calculate SHA-2 512 digest
  help      Print this message or the help of the given subcommand(s)

Options:
  -c, --color <COLOR>  Show colored output [default: auto] [possible values: always, auto, never]
  -h, --help           Print help
  -V, --version        Print version

Help for a Specific Algorithm

$ chksum help sha2-224
Calculate SHA-2 224 digest

Usage: chksum sha2-224 [OPTIONS] <PATH>...

Arguments:
  <PATH>...  Path to file or directory

Options:
  -s, --stdin          Calculate digest from stdin
  -c, --color <COLOR>  Show colored output [default: auto] [possible values: always, auto, never]
  -h, --help           Print help

File Processing

$ chksum sha2-224 LICENSE
LICENSE: 99258bca0d23c69388dd53412f1009132753b89459359a401a6ed158

Directory Processing

$ chksum sha1 src/
src/: 03e4ae615c034f5db47c72bd5c6c9e5bf450a2bd

Standard Input Processing

$ echo -n admin1 | chksum md5 --stdin
<stdin>: e00cf25ad42683b3df678c61f42c6bda

Library

Check out the chksum crate to see the library that allows you to calculate digests of files and directories with an easy-to-use interface.

Hash Algorithms

This binary provides implementations for the following hash algorithms:

Features

Algorithms

  • md5: Enables MD5 hash algorithm.
  • sha1: Enables SHA-1 hash algorithm.
  • sha2: Enables SHA-2 hash family algorithms.
    • sha2-224: Enables only SHA-2 224 hash algorithm.
    • sha2-256: Enables only SHA-2 256 hash algorithm.
    • sha2-384: Enables only SHA-2 384 hash algorithm.
    • sha2-512: Enables only SHA-2 512 hash algorithm.

By default, all of them are enabled.

Extra Options

  • color: Enables colored output.

By default, all of them are enabled.

Disclaimer

The code is under development, and the interface may change in the future.

License

This crate is licensed under the MIT License.

Dependencies

~6–14MB
~195K SLoC