#sha256 #hash #asynchronous #stream

async-hash

Traits and helper functions for SHA256 hashing of async data types

5 unstable releases

0.3.1 Jan 5, 2022
0.3.0 Jan 5, 2022
0.2.1 Dec 21, 2021
0.2.0 Dec 21, 2021
0.1.0 Dec 20, 2021

#598 in Cryptography

Download history 33/week @ 2022-04-26 64/week @ 2022-05-03 117/week @ 2022-05-10 39/week @ 2022-05-17 61/week @ 2022-05-24 64/week @ 2022-05-31 36/week @ 2022-06-07 13/week @ 2022-06-14 40/week @ 2022-06-21 10/week @ 2022-06-28 24/week @ 2022-07-05 26/week @ 2022-07-12 29/week @ 2022-07-19 29/week @ 2022-07-26 48/week @ 2022-08-02 60/week @ 2022-08-09

173 downloads per month
Used in 10 crates (6 directly)

Apache-2.0

10KB
248 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 of data that 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>

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

~1MB
~26K SLoC