seabloom 0.1.0

Yet Another Bloom Filter, this one using seahash
Documentation
  • Coverage
  • 0%
    0 out of 12 items documented0 out of 11 items with examples
  • Size
  • Source code size: 13.18 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 1.57 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 15s Average build duration of successful builds.
  • all releases: 15s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Homepage
  • ceejbot/seabloom
    5 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • ceejbot

seabloom

Yet Another Bloom Filter, this one using seahash.

Build Status cargo

Usage

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

Create a Bloom filter sized for the given item count with an error rate of 0.5% (0.005). Seeds for the hashing functions will be generated randomly for you.

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

Create a Bloom filter sized for the given item count with the specified error rate. Seeds for the hashing functions will be generated randomly for you.

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

Create a Bloom filter with the given number of bits for storage and the given number of hashing functions. Seeds for the hashing functions will be generated randomly for you. You probably don't want to use this function; use create instead.

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

Create a Bloom filter with the given number of bits for storage and hashing functions using the seeds you provide. You need 4x the number of seeds as hashing functions for seahash's current API.

filter.clear()

Clear the filter.

filter.add(item: &str)

Add a string to the filter.

filter.add_bytes(bytes: &[u8])

Add an item represented by the given bytes to the filter.

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

Add a list of strings to the filter.

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

Check to see if the given string is in the filter. Provides a definitive no or a maybe-yes.

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

Check to see if the given pile-o-bytes is in the filter. Provides a definitive no or a maybe-yes.

License

ISC.