#bloom-filter #bloom #traits #generic #spectral #binary #storage

generic-bloom

使用特性实现的Bloom过滤器泛型实现

1 个不稳定版本

0.1.0 2022年2月14日

#2456数据结构

AGPL-3.0-or-later

22KB
302

generic-bloom

此包提供了一个 BloomFilter 特性,可以通过不同的存储类型(通过 BloomSet 特性)来参数化,以获得传统的二进制Bloom过滤器、计数Bloom过滤器和光谱Bloom过滤器。有关更多信息,请参阅文档


lib.rs:

此包提供了一个 BloomFilter 特性,可以通过不同的存储类型(通过 BloomSet 特性)来参数化,以获得传统的二进制Bloom过滤器、计数Bloom过滤器和光谱Bloom过滤器。有关基本用法,请参阅 SimpleBloomFilter 的文档。

BloomSet 实现为 BitBox 提供了(用于传统的位图风格的Bloom过滤器)和 Box<[T]>,其中 T 是一个数值类型(用于计数或光谱Bloom过滤器)。

示例

基本用法

use generic_bloom::{BloomFilter, SimpleBloomFilter};
use bitvec::prelude::*;

let mut filter: SimpleBloomFilter<BitBox<usize, Lsb0>> = SimpleBloomFilter::new(10, 20);
filter.insert(&48);
filter.insert(&32);
assert!(filter.contains(&48));
assert!(filter.contains(&32));
// May fail if 39 happens to be a false positive
assert!(!filter.contains(&39));

依赖关系

~1MB
~25K SLoC