#serialization #sha-256 #digest

no-std hashing-serializer

Serialize serde-implementing structures directly into a hash

3 unstable releases

0.2.0-pre.0 Aug 1, 2024
0.1.1 Jun 12, 2024
0.1.0 Jun 12, 2024

#212 in No standard library

Download history 595/week @ 2024-12-14 53/week @ 2024-12-21 77/week @ 2024-12-28 240/week @ 2025-01-04 265/week @ 2025-01-11 456/week @ 2025-01-18 446/week @ 2025-01-25 275/week @ 2025-02-01 358/week @ 2025-02-08 524/week @ 2025-02-15 249/week @ 2025-02-22 601/week @ 2025-03-01 547/week @ 2025-03-08 268/week @ 2025-03-15 133/week @ 2025-03-22 305/week @ 2025-03-29

1,403 downloads per month
Used in 13 crates (via synedrion)

MIT license

15KB
336 lines

crate Docs License Coverage

An implementation of serde::Serializer serializing directly into a hash digest (anything implementing digest::Update).

use digest::Digest;
use k256::ecdsa::SigningKey;
use rand_core::OsRng;
use serde::Serialize;
use sha2::Sha256;

use hashing_serializer::HashingSerializer;

let sk = SigningKey::random(&mut OsRng);
let vk = sk.verifying_key();

let mut digest = Sha256::new();
let serializer = HashingSerializer { digest: &mut digest };
vk.serialize(serializer).unwrap();

Dependencies

~0.6–1MB
~23K SLoC