4个版本

0.2.0 2023年9月21日
0.1.2 2023年9月18日
0.1.1 2023年9月18日
0.1.0 2023年9月18日

#1122 in 硬件支持

MIT 协议

27KB
434

hyperlog-simd

一个用于ARM和x86_64平台上的HyperLogLog和HyperLogLogPlusPlus流式去重计数算法的Rust实现,具有SIMD(单指令多数据)支持。此外,还提供了serde兼容性,以方便序列化和反序列化。

Rust License: MIT

特性

  • 🔬 HLL和HLL++:实现了HyperLogLog(HLL)和HyperLogLog++(HLL++)算法。
  • 🚀 快速SIMD支持:利用ARM和x86_64平台上的SIMD操作速度。
  • 🔄 合并Sketches:合并多个sketches以允许增量化和并行处理。
  • 📦 Serde兼容性:轻松序列化和反序列化您的sketches。
  • 📚 全面文档:提供了所有特性的示例和文档。

目录

安装

hyperlog-simd 添加到您的 Cargo.toml 依赖项中

[dependencies]
hyperlog-simd = "0.1.0"

使用

以下是一个简单的入门示例

use hyperlog_simd::{HyperLogLog, HyperLogLogPlusPlus};

let mut hll = HyperLogLog::new();
hll.add("hello");
hll.add("world");

let count = hll.estimate();
println!("Estimated distinct count: {}", count);

let mut hllpp = HyperLogLogPlusPlus::new();
hllpp.add("hello");
hllpp.add("world");

let count_pp = hllpp.estimate();
println!("Estimated distinct estimate (HLL++): {}", count_pp);

有关详细示例和文档,请参阅文档

基准测试

此库在支持SIMD的平台上有显著的性能提升。基准测试将定期更新,您也可以自行运行它们

cargo bench

贡献

我们欢迎贡献!请参阅CONTRIBUTING.md以获取指导和详细信息。

许可

hyperlog-simd 在MIT协议下授权。有关详细信息,请参阅LICENSE


快乐的编码!我们希望hyperlog-simd以最高效率帮助您实现流式去重计数需求!🚀🦀

依赖项

~1.1–1.6MB
~34K SLoC