#bloom-filter #bloom #filter #xx-hash

xx-bloomfilter

使用xx hash实现的Bloom filter

3个不稳定版本

使用旧的Rust 2015

0.11.1 2019年7月30日
0.11.0 2019年7月30日
0.10.0 2019年7月28日

#2333 in 数据结构

ISC 许可证

12KB
231

xx-bloomfilter

https://github.com/jedisct1/rust-bloom-filter的硬分叉。大部分内部结构都进行了重构,使算法更加清晰和高效。使用极快的XxHash64进行哈希。

使用方法

在你的Cargo.toml中

[dependencies]
xx-bloomfilter = "0.10.0"

使用预期的项目数量和所需的误报率进行初始化

extern crate xx_bloomfilter;
extern crate rand;

use xx_bloomfilter::Bloom;

fn main () {

    let mut bloom = Bloom::new_with_rate(1_000_000, 1e-6);
    let item: u64 = rand::random();

    assert_eq!(false, bloom.check_and_add(&item));
    assert_eq!(true, bloom.check(&item));

    // Clear all values
    bloom.clear();

    assert_eq!(false, bloom.check_and_add(&item));
}

lib.rs:

Rust的Bloom filter - fork自https://github.com/jedisct1/rust-bloom-filter

这是一个简单但快速的Bloom filter实现,只需要2个哈希函数,使用XXHash64和随机密钥生成。

依赖项

~1.1–1.7MB
~37K SLoC