Code Monkey home page Code Monkey logo

rsum's Introduction

rsum

Rsum is a file hashing tool roughly styled after the shaxsum tools in GNU Coreutils. Rsum supports SHA512 and Blake2b 512 bit hashes, recursive scanning into directories, file-level resume of interrupted hashing sessions, and will process multiple small files in parallel.

In SHA512 mode, rsum should be signficiantly faster than sha512sum when hashing collections of files smaller than 16 MiB, but sha512sum handles very large files more quickly due to its more efficient SHA512 implemenation. Rsum in Blake2b mode is faster than SHA512.

256 bit hashing algorithms are not supported as they perform badly on 64-bit platforms without hardware SHA acceleration, which Go does not support. Older hashing algorithms are not supported due to poor security.

The intended use case for rsum is to create hash snapshots for use by other tools, such as gsc. These snapshots can be used for detecting silent data corruption ('bit rot'), verifying the integrity of copies or backups, intrusion detection, and so forth.

Usage

> rsum --help
rsum release 0. THIS IS EXPERIMENTAL SOFTWARE. DO NOT USE IT FOR ANYTHING IMPORTANT.

Usage: rsum --output=STRING <paths> ... [flags]

Recursive Sum Tool

Arguments:
  <paths> ...    Input files

Flags:
  -h, --help                      Show context-sensitive help.
  -r, --recurse                   Recurse into subdirectories.
  -t, --hashtype="blake2b-512"    Select hash algorithm. Valid options are blake2b-512 and sha512.
      --base64                    Write sums in RFC 4648 base 64 rather than hexadecimal.
  -v, --verbose                   Show progress.
  -c, --usecwd                    Store resume database in the current working directory rather than in the user cache directory.
  -o, --output=STRING             Output filename

Usage notes

Rsum will accept directories among its input arguments, but will not recurse into subdirectories without the -r switch.

The -c switch is intended to allow multiple concurrent instances of rsum use separate resume databases to independently recover from unplanned failures.

License

Copyright 2024 Coridon Henshaw

Permission is granted to all natural persons to execute, distribute, and/or modify this software (including its documentation) subject to the following terms:

  1. Subject to point #2, below, all commercial use and distribution is prohibited. This software has been released for personal and academic use for the betterment of society through any purpose that does not create income or revenue. It has not been made available for businesses to profit from unpaid labor.

  2. Re-distribution of this software on for-profit, public use, repository hosting sites (for example: Github) is permitted provided no fees are charged specifically to access this software.

  3. This software is provided on an as-is basis and may only be used at your own risk. This software is the product of a single individual's recreational project. The author does not have the resources to perform the degree of code review, testing, or other verification required to extend any assurances that this software is suitable for any purpose, or to offer any assurances that it is safe to execute without causing data loss or other damage.

  4. This software is intended for experimental use in situations where data loss (or any other undesired behavior) will not cause unacceptable harm. Users with critical data safety needs must not use this software and, instead, should use equivalent tools that have a proven track record.

  5. If this software is redistributed, this copyright notice and license text must be included without modification.

  6. Distribution of modified copies of this software is discouraged but is not prohibited. It is strongly encouraged that fixes, modifications, and additions be submitted for inclusion into the main release rather than distributed independently.

  7. This software reverts to the public domain 10 years after its final update or immediately upon the death of its author, whichever happens first.

rsum's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.