12 releases (4 breaking)
| 0.5.0 | Oct 1, 2020 |
|---|---|
| 0.4.8 |
|
| 0.4.7 | Sep 18, 2020 |
| 0.4.5 | Aug 30, 2020 |
| 0.1.0 | Jun 18, 2020 |
#10 in #multi-hash
Used in 7 crates
(via tiny-cid)
43KB
800 lines
tiny-multihash
multihash implementation in Rust.
Table of Contents
Install
First add this to your Cargo.toml
[dependencies]
tiny-multihash = "*"
Then run cargo build.
Usage
use tiny_multihash::{Multihash, MultihashDigest, SHA2_256};
fn main() {
let hash = Multihash::new(SHA2_256, b"my hash");
println!("{:?}", hash);
}
Using a custom code table
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);
}
Supported Hash Types
SHA1SHA2-256SHA2-512SHA3/KeccakBlake2b-256/Blake2b-512/Blake2s-128/Blake2s-256
Maintainers
Dependencies
~0.2–1.5MB
~30K SLoC