Crate normalized_hash

source ·
Expand description


badge github badge badge badge license

Cross-platform hash algorithm.

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


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()
        .hash_file(&file_in, Some(file_out));
    println!("{}", hash);