Crates.io | tiny-multihash |
lib.rs | tiny-multihash |
version | 0.5.0 |
source | src |
created_at | 2020-06-18 19:07:08.553477 |
updated_at | 2020-10-01 18:06:33.631551 |
description | Implementation of the multihash format |
homepage | |
repository | https://github.com/ipfs-rust/tiny-multihash |
max_upload_size | |
id | 255451 |
size | 92,902 |
multihash implementation in Rust.
First add this to your Cargo.toml
[dependencies]
tiny-multihash = "*"
Then run cargo build
.
use tiny_multihash::{Multihash, MultihashDigest, SHA2_256};
fn main() {
let hash = Multihash::new(SHA2_256, b"my hash");
println!("{:?}", hash);
}
You can derive your own application specific code table:
use tiny_multihash::derive::Multihash;
use tiny_multihash::{Hasher, MultihashDigest};
const FOO: u64 = 0x01;
const BAR: u64 = 0x02;
#[derive(Clone, Debug, Eq, Multihash, PartialEq)]
pub enum Multihash {
#[mh(code = FOO, hasher = tiny_multihash::Sha2_256)]
Foo(tiny_multihash::Sha2Digest<tiny_multihash::U32>),
#[mh(code = BAR, hasher = tiny_multihash::Sha2_512)]
Bar(tiny_multihash::Sha2Digest<tiny_multihash::U64>),
}
fn main() {
let hash = Multihash::new(FOO, b"my hash");
println!("{:?}", hash);
}
SHA1
SHA2-256
SHA2-512
SHA3
/Keccak
Blake2b-256
/Blake2b-512
/Blake2s-128
/Blake2s-256