scalablecuckoofilter

scalable<em>cuckoo</em>filter Documentation Actions Status Coverage Status License: MIT

A variant of Cuckoo Filter whose size automatically scales as necessary.

Documentation

Examples

Basic usage:

```rust use scalablecuckoofilter::ScalableCuckooFilter;

let mut filter = ScalableCuckooFilter::new(100, 0.001); assert!(!filter.contains("foo")); filter.insert("foo"); assert!(filter.contains("foo")); ```

Filter grows automatically:

```rust use scalablecuckoofilter::ScalableCuckooFilter;

let mut filter = ScalableCuckooFilter::new(100, 0.001); assert_eq!(filter.capacity(), 128);

for i in 0..1000 { filter.insert(&i); } assert_eq!(filter.capacity(), 1923); ```

Filter shrinking:

```rust use scalablecuckoofilter::ScalableCuckooFilter;

let mut filter = ScalableCuckooFilter::new(1000, 0.001); for i in 0..100 { filter.insert(&i); } asserteq!(filter.capacity(), 1024); asserteq!(filter.bits(), 14336);

filter.shrinktofit(); for i in 0..100 { assert!(filter.contains(&i)); } asserteq!(filter.capacity(), 128); asserteq!(filter.bits(), 1792); ```

References