37 个版本

0.19.1 2023 年 9 月 7 日
0.19.0 2023 年 6 月 6 日
0.18.1 2023 年 4 月 14 日
0.18.0 2022 年 12 月 6 日
0.1.0 2015 年 12 月 28 日

#32 in 编码

Download history • Rust 包仓库 162021/week @ 2024-04-14 • Rust 包仓库 159151/week @ 2024-04-21 • Rust 包仓库 133176/week @ 2024-04-28 • Rust 包仓库 134061/week @ 2024-05-05 • Rust 包仓库 165712/week @ 2024-05-12 • Rust 包仓库 152641/week @ 2024-05-19 • Rust 包仓库 181962/week @ 2024-05-26 • Rust 包仓库 169214/week @ 2024-06-02 • Rust 包仓库 147038/week @ 2024-06-09 • Rust 包仓库 141879/week @ 2024-06-16 • Rust 包仓库 153182/week @ 2024-06-23 • Rust 包仓库 132222/week @ 2024-06-30 • Rust 包仓库 154327/week @ 2024-07-07 • Rust 包仓库 195367/week @ 2024-07-14 • Rust 包仓库 195713/week @ 2024-07-21 • Rust 包仓库 189257/week @ 2024-07-28 • Rust 包仓库

742,615 个月下载量
973 个 crate(127 直接) 中使用

MIT 许可证

34KB
602

rust-multihash

Build Status Crates.io License Documentation Dependency Status Coverage Status

multihash 在 Rust 中的实现。

目录

安装

首先将此添加到您的 Cargo.toml

[dependencies]
multihash = "*"

然后运行 cargo build

MSRV

此库所需的最小支持 Rust 版本为 1.64.0。这仅在没有激活额外功能的情况下保证。

用法

multihash crate 提供了用于编码和解码多哈希的基本数据结构。它本身不提供任何哈希功能。《多哈希》使用 const-generics 定义内部缓冲区大小。您应该将其设置为要支持的摘要最大大小。

use multihash::Multihash;

const SHA2_256: u64 = 0x12;

fn main() {
	let hash = Multihash::<64>::wrap(SHA2_256, b"my digest");
	println!("{:?}", hash);
}

使用自定义代码表

您可以使用 multihash-derive crate 提出自定义的应用程序特定代码表。如果不想自己实现,multihash-codetable 提供了预定义的哈希器实现。

use multihash_derive::MultihashDigest;

#[derive(Clone, Copy, Debug, Eq, MultihashDigest, PartialEq)]
#[mh(alloc_size = 64)]
pub enum Code {
    #[mh(code = 0x01, hasher = multihash_codetable::Sha2_256)]
    Foo,
    #[mh(code = 0x02, hasher = multihash_codetable::Sha2_512)]
    Bar,
}

fn main() {
    let hash = Code::Foo.digest(b"my hash");
    println!("{:02x?}", hash);
}

支持的哈希类型

  • SHA1
  • SHA2-256
  • SHA2-512
  • SHA3/Keccak
  • Blake2b-256/Blake2b-512/Blake2s-128/Blake2s-256
  • Blake3
  • Strobe

维护者

船长:@dignifiedquire.

贡献

欢迎贡献。请查看问题

请查看我们的贡献文档,了解我们如何工作以及一般贡献方式。请注意,所有与 multiformats 相关的互动都受 IPFS 行为准则约束。

小贴士:如果您正在编辑 README,请遵守标准 README 规范

许可证

MIT

依赖

~0.3–1.2MB
~21K SLoC