Quotient Filter
An implemantation of quotient filter. Based on the book named Algorithms and Data Structures for Massive Datasets.
Usage
To use this crate, simply add the following string to your Cargo.toml:
quotient-filter = "0.2.1"
let mut filter = new.unwrap;
// if method names end with 'value', it uses fnv1a as default
let idx = filter.insert_value.unwrap; // returns Result<location of insert>
// if you want to use something else than fnv1a
let your_hash_result = your_hash_function;
let idx2 = filter.insert;
// The generic one doesn't have default hashes.
let mut filter_generic = new.unwrap;
let idx3 = filter.insert.unwrap;
Supports insertion, deletion, lookup, merging and resizing.
The generic version exists under the generic module. It was first implemented for u64, then mostly copy pasted u32 version under extra module. To avoid of copy-paste, the generic version has been created but with a few more checks. It supports u64, u32, u16 and u8 fingerprints.