4 stable releases
1.2.0 | Sep 13, 2022 |
---|---|
1.1.0 | Sep 13, 2022 |
1.0.1 | Sep 13, 2022 |
1.0.0 | Sep 11, 2022 |
#2308 in Data structures
3,934 downloads per month
Used in radicle-node
315KB
653 lines
Bloomy
A minimal implementation of a Bloom filter in Rust.
Bloom filters are a space-efficient probabilistic data structure invented by Burton Howard Bloom in the 1970s.
This crate combines ideas and code from various other Bloom filter crates.
The underlying bit vector implementation is adapted from existing code by Helge Wrede, Alexander Schultheiß and Lukas Simon.
In comparison with other crates, bloomy
combines the following advantages:
- Computationally efficient by using a double hashing technique pioneered
by Adam Kirsch and Michael Mitzenmacher. You can find a copy of the paper in
the
docs/
folder. - Has only a single dependency:
siphasher
, from which multiple hashers are derived, and hence doesn't depend on thebitvec
orbit-vec
crates. - Supports union and intersection operations.
- Supports counting items and similarity metrics.
Usage
Add the following to your Cargo.toml
:
[dependencies]
bloomy = "1"
Check the examples/
folder for usage examples.
License
Licensed under the MIT license.