normalized-hash

Crates.ionormalized-hash
lib.rsnormalized-hash
version0.1.0
sourcesrc
created_at2023-08-19 23:52:13.878632
updated_at2023-08-19 23:52:13.878632
descriptionCross-platform hash algorithm.
homepage
repositoryhttps://github.com/FloGa/normalized-hasher
max_upload_size
id948965
size17,493
Florian Gamboeck (FloGa)

documentation

README

normalized-hash

badge github badge crates.io badge docs.rs badge license

Cross-platform hash algorithm.

This is the library crate. If you're looking for the binary crate instead, go to normalized-hasher.

Summary

This hashing algorithm allows consistent hashes even if you accidentally convert a file from using UNIX line endings (LF) to Windows line endings (CRLF). For a longish motivational speech about how such a thing can happen and why you should want to even care about such a case, head over to normalized-hasher.

Code Example

use std::path::PathBuf;

use normalized_hash::Hasher;

fn main() {
    let file_in = PathBuf::from("input.txt");
    let file_out = PathBuf::from("output.txt");

    // Simple example with default options, without writing an output file
    let hash = Hasher::new().hash_file(&file_in, None::<PathBuf>);
    println!("{}", hash);

    // More complex example, with writing output
    let hash = Hasher::new()
        .eol("\r\n")
        .no_eof(true)
        .hash_file(&file_in, Some(file_out));
    println!("{}", hash);
}
Commit count: 73

cargo fmt