Skip to main content

Crate quickbloom

Crate quickbloom 

Source
Expand description

§quickbloom

An industry-grade, highly scalable Bloom filter library for Rust.

§Architecture Overview

TypeConcurrencyGrowthPersistence
BloomFiltersingle-threaded (or wrap in ConcurrentBloomFilter)fixed✅ via path
ScalableBloomFiltersingle-threaded (or wrap in ConcurrentBloomFilter)✅ auto✅ via path
AtomicBloomFilter✅ fully lock-free (BETA)fixedmanual

§Bloom Mode

Standard BloomFilter supports two internal layouts selected via BloomMode:

  • BloomMode::Standard – classic flat bit-array layout.
  • BloomMode::Blocked – partitions the bit array into 512-bit (64-byte) blocks. Every hash for a single item maps exclusively within one block, ensuring each insert and contains touches exactly one CPU cache line. This often doubles throughput on modern hardware.

§Feature Summary

  • BloomConfig – mathematically optimal sizing from (n, fp_rate).
  • Fast ahash-based enhanced double hashing.
  • Seamless auto-save/load via user-supplied file paths.
  • CI-tested, #![forbid(unsafe_code)].

§Example

use quickbloom::{BloomConfig, BloomMode, BloomFilter};

// Size automatically computed for 1M items at 1% FP rate
let config = BloomConfig::new(1_000_000, 0.01);
let (size, hashes) = config.parameters();

// Cache-friendly blocked layout
let mut filter = BloomFilter::with_mode(size, hashes, BloomMode::Blocked);
filter.insert(&"alice");
assert!(filter.contains(&"alice"));
assert!(!filter.contains(&"bob"));

Structs§

AtomicBloomFilter
A fully lock-free, thread-safe Bloom filter backed by AtomicU8 bytes.
BloomConfig
Configuration for creating a Bloom filter.
BloomFilter
A fast, standard Bloom filter with optional cache-friendly blocked layout and automatic file-based persistence.
ConcurrentBloomFilter
A thread-safe wrapper around any Bloom filter using Arc<RwLock>.
ScalableBloomFilter
A scalable Bloom filter.

Enums§

BloomMode
The internal memory layout used by a BloomFilter.

Type Aliases§

BloomBitVec
Specific bit vector type used internally.