#hash #hashing #generic #endian #macro-derive #no-alloc #endian-independent

no-std anyhash

用于生成任何类型哈希的特性和实用工具

2个版本

0.1.2 2024年4月1日
0.1.1 2024年4月1日
0.1.0 2024年1月14日

#1229 in 算法

MIT OR Apache-2.0 OR Zlib

100KB
2.5K SLoC

用于生成任何类型哈希的特性和实用工具

此crate提供HashHasherBuildHasher特性和,它们几乎与core/std中的对应物完全相同,除了HasherBuildHasher是泛型哈希类型之外,Hash可以与任何类型的哈希一起使用。还提供Hash的derive宏。

Hash特性和使用HasherWrite特性和进行哈希,该特性包含您在Hasher中熟悉的所有写方法,除了finish方法,因为Hash不知道哈希的类型。

哈希算法实现了HasherHasherWrite特性和。Hasher是泛型哈希类型,仅包含finish方法。它依赖于HasherWrite,因此您可以像使用核心中的Hasher一样使用它。

此crate还提供用于处理端序无关哈希的工具和一些哈希器实现。

功能

该crate是no_std,默认不启用任何功能。以下功能可用

  • alloc:启用对标准alloc crate的特实现。
  • std:启用对标准std crate的特实现。隐含alloc

可选集成

  • bnum:为bnum crate的类型实现Hash,并添加支持将它们用作内置哈希器使用的哈希类型。

内置哈希器

  • fnv:使用Fnv1和Fnv1a算法的哈希器。
  • spooky:使用SpookyHash算法的哈希器。V1和V2都可用。
  • xxh64:使用Xxh64算法的哈希器。

依赖项

~0.3–0.9MB
~20K SLoC