ez-hash

Crates.ioez-hash
lib.rsez-hash
version1.1.0
created_at2025-12-18 03:31:21.740116+00
updated_at2025-12-20 11:14:35.866311+00
descriptionErgonomic hashing helpers with a simple Hashable API and optional algorithm features.
homepagehttps://github.com/kvinwang/ez-hash
repositoryhttps://github.com/kvinwang/ez-hash
max_upload_size
id1991636
size31,045
Kevin Wang (kvinwang)

documentation

https://docs.rs/ez-hash

README

ez-hash

Ergonomic hashing helpers for Rust.

  • Single, simple API: each hash algorithm is a single function.
  • Supports hashing either a single value or multiple parts by implementing Hashable.
  • Common hash algorithms behind Cargo features (default: all enabled).

Installation

[dependencies]
ez-hash = "1.0"

To enable only selected algorithms:

ez-hash = { version = "1.0", default-features = false, features = ["sha2", "sha3"] }

Usage

Single-part:

use ez_hash::sha256;

let digest = sha256("hello");

Multi-part (tuple / array / vec):

use ez_hash::{keccak256, sha256};

let a = sha256(("a", "bc"));
let b = sha256(["a", "b", "c"]);
let c = keccak256(("prefix", "data", "suffix"));
assert_eq!(a, b);

Bytes:

use ez_hash::sha256;

let bytes = 1u32.to_le_bytes();
let digest = sha256(bytes);

API

The crate exposes:

  • Hashable trait (implemented for common byte/string types and for tuples/arrays/vectors of hashables)

Hash functions (availability depends on enabled features):

  • SHA1: sha1
  • SHA2: sha224, sha256, sha384, sha512, sha512_224, sha512_256
  • SHA3: sha3_224, sha3_256, sha3_384, sha3_512
  • Keccak: keccak256, keccak512
  • Blake2: blake2b_256, blake2b_384, blake2b_512, blake2s_128, blake2s_256
  • Blake3: blake3
  • MD5: md5

License

Licensed under the Apache License, Version 2.0. See LICENSE.

Commit count: 0

cargo fmt