#bloom-filter #cat #seahash

seabloom

又一个 Bloom 过滤器,这次使用了 seahash

1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2016年11月30日

#71#cat

Download history 16/week @ 2024-04-01

66 每月下载量

ISC 许可证

10KB
249

seabloom

又一个 Bloom 过滤器,这次使用了 seahash

Build Status cargo

用法

extern crate seabloom;

let mut filter = Seabloom::create(2000);

assert_eq!(filter.has("cat"), false);
filter.add("cat");
assert_eq!(filter.has("cat"), true);

filter.add_list(vec!["cat", "jaguar", "lion", "tiger", "leopard"]);
assert_eq!(filter.has("caracal"), false);
assert_eq!(filter.has("jaguar"), true);

filter.clear();
assert_eq!(filter.has("cat"), false);

API

Seabloom::create(item_count: u32) ->Seabloom

为给定的项目计数创建一个大小合适的 Bloom 过滤器,错误率为 0.5%(0.005)。哈希函数的种子将为您随机生成。

Seabloom::create_optimal(item_count: u32,error_rate: f32) ->Seabloom

为给定的项目计数创建一个大小合适的 Bloom 过滤器,具有指定的错误率。哈希函数的种子将为您随机生成。

Seabloom::create_random_seeds(bitcount: u64,hashcount: u32) ->Seabloom

创建一个具有给定存储位数的 Bloom 过滤器,以及给定数量的哈希函数。哈希函数的种子将为您随机生成。您可能不想使用此函数;请改用 create

Seabloom::new(bitcount: u64,seeds: Vec<u64>) ->Seabloom

使用您提供的种子创建一个具有给定存储位和哈希函数的 Bloom 过滤器。对于 seahash 的当前 API,您需要哈希函数数量的 4 倍种子。

filter.clear()

清除过滤器。

filter.add(item: &str)

将字符串添加到过滤器中。

filter.add_bytes(bytes: &[u8])

将表示为给定字节的项添加到过滤器中。

filter.add_list(items: Vec<&str>)

将字符串列表添加到过滤器中。

filter.has(item: &str) -> bool

检查给定的字符串是否在过滤器中。提供明确的“否”或“可能为是”。

filter.has_bytes(bytes: &[u8]) -> bool

检查给定的字节数组是否在过滤器中。提供明确的“否”或“可能为是”。

许可证

ISC。

依赖项

~360–590KB