async-hash

Traits and helper functions for SHA256 hashing of async data types

11 releases

0.5.4 Aug 13, 2024
0.5.3 Dec 20, 2023
0.5.2 Nov 6, 2023
0.5.0 Jul 3, 2023
0.2.1 Dec 21, 2021

#315 in Cryptography

Download history 22/week @ 2024-07-07 66/week @ 2024-07-14 82/week @ 2024-07-21 159/week @ 2024-07-28 34/week @ 2024-08-04 203/week @ 2024-08-11 45/week @ 2024-08-18 62/week @ 2024-08-25 56/week @ 2024-09-01 52/week @ 2024-09-08 49/week @ 2024-09-15 140/week @ 2024-09-22 61/week @ 2024-09-29 17/week @ 2024-10-06 36/week @ 2024-10-13 14/week @ 2024-10-20

165 downloads per month
Used in 19 crates (11 directly)

Apache-2.0

12KB
287 lines

async-hash

A Rust library for SHA256 hashing of data structures which only support async access


lib.rs:

Provides traits Hash, HashStream, and HashTryStream for SHA-2 hashing data which must be accessed asynchronously, e.g. a Stream or database table.

Hash is implemented for standard Rust types:

  • Primitive types:
    • bool
    • i8, i16, i32, i64, i128, isize
    • u8, u16, u32, u64, u128, usize
    • f32, f64
    • &str
    • String
  • Common standard library types:
    • Option<T>
    • PhantomData<T>
  • Compound types:
    • [T; 0] through [T; 32]
    • tuples up to size 16
  • Collection types:
    • BTreeMap<K, V>
    • BTreeSet<T>
    • BinaryHeap<T>
    • LinkedList<T>
    • VecDeque<T>
    • Vec<T>
  • Other types:
    • SmallVec<V> (requires the smallvec feature flag)

IMPORTANT: hashing is order-dependent. Do not implement the traits in this crate for any data structure which does not have a consistent order. Consider using the collate crate if you need to use a type which does not implement [Ord].

Dependencies

~1–1.4MB
~28K SLoC