12 个版本 (4 个重大更改)

0.5.0 2020 年 10 月 1 日
0.4.8 2020 年 10 月 1 日
0.4.7 2020 年 9 月 18 日
0.4.5 2020 年 8 月 30 日
0.1.0 2020 年 6 月 18 日

#10 in #multi-hash

每月下载 21
7 个包中使用 (通过 tiny-cid)

MIT 许可

43KB
800 代码行

tiny-multihash

Crates.io Documentation

multihash 在 Rust 中的实现。

目录

安装

首先将以下内容添加到您的 Cargo.toml

[dependencies]
tiny-multihash = "*"

然后运行 cargo build

用法

use tiny_multihash::{Multihash, MultihashDigest, SHA2_256};

fn main() {
    let hash = Multihash::new(SHA2_256, b"my hash");
    println!("{:?}", hash);
}

使用自定义代码表

您可以为特定应用生成自己的代码表

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

维护者

@dvc94ch

依赖

~0.2–1.4MB
~28K SLoC