#bloom-filter #split #block #parquet

sbbf-rs-safe

分割块布隆过滤器实现

10个不稳定版本 (3个破坏性版本)

0.3.2 2023年7月1日
0.3.1 2023年6月30日
0.2.2 2023年6月28日
0.1.2 2023年6月21日
0.0.4 2023年5月23日

#1490 in 数据结构


3 个crate中使用了(通过 hypersync-format

MIT 许可证

8KB
91

sbbf-rs-safe

CI Crates.io version

这是什么?

这是基于 sbbf-rs 的分割块布隆过滤器。这是对 parquet 布隆过滤器规范 的精确实现。

存储到永久存储

可以使用 Filter::as_bytesFilter::from_bytes 方法将过滤器保存到/从永久存储中。

为什么选择这个而不是crates.io上的其他布隆过滤器实现?

分割块布隆过滤器由于以下原因具有非常好的性能;每次查询/插入只加载少量数据,它们的代码中不包含任何分支,可以使用SIMD指令进行加速。

这个特定的实现可以在任何系统上产生相同的字节缓冲区,因此可以用来实现存储在磁盘上或通过互联网传输的持久性布隆过滤器。

尽管这个库缺少删除、计数等特性,但在编写本文时,它似乎是Rust中最快的布隆过滤器实现。可以通过在 这个仓库 上使用 cargo bench 运行基准测试。

关于WASM的说明

除了使用 wasm 目标和启用 simd128 CPU功能外,这个库不需要nightly。如果目标是 wasm 且启用了 simd128 CPU功能,则需要nightly编译器。

依赖关系

~55KB