There are 87 bloom filter crates. Strategies for choosing one?

53 points chkno

There are about 87 bloom filter / AMQ-filter crates.

I would like to use a bloom filter in my Rust project. I don't require any fancy features like merging, serializing, growing, removing, counting, etc.

Advice for choosing a crate quickly without looking into each of them in detail?

​

Last Release Downloads Version Name Description
2022-09-20 3246395 0.13.0 ethbloom Ethereum bloom filter
2020-08-25 1682542 0.5.0 cuckoofilter Cuckoo Filter: Practically Better Than Bloom
2021-09-09 849691 1.0.9 bloomfilter Bloom filter implementation
2016-09-13 361569 0.3.2 bloom Fast Bloom Filter and Counting Bloom Filter implementation
2023-02-09 222762 1.15.1 solana-bloom Solana bloom filter
2021-06-26 158563 2.0.1 growable-bloom-filter Scalable Bloom Filters with serde support
2021-06-22 138419 0.1.2 bloom-filters Rust port of tylertreat/BoomFilters
2017-08-07 74810 0.2.0 bloomchain Standalone blockchain bloom filter
2017-08-02 53726 0.2.1 etcommon-bloom Log bloom implementation for Ethereum.
2022-05-10 43767 1.4.0 rust\_cascade A simple bloom filter cascade implementation in Rust.
2022-12-14 43359 0.8.1 xorf Library implementing xor filters - faster and smaller than bloom and cuckoo filters.
2022-06-13 24285 0.7.0 pdatastructs Simple probabilistic data structures
2020-05-11 23033 0.7.0 probabilistic-collections Various implementations of collections that use approximations to improve on running time or memory, but introduce a certain amount of error.
2022-12-13 19594 0.5.0 finch An implementation of min-wise independent permutation locality sensitive hashing ('MinHashing') for genomic data and command-line utility for manipulation.
2021-09-08 17445 0.5.1 xorfilter-rs Xor Filters: Faster and Smaller Than Bloom and Cuckoo Filters
2019-08-23 14620 0.1.3 cbloom Concurrent implementation of Bloom filters.
2023-02-09 13923 0.4.0 fastbloom-rs Some fast bloom filter implemented by Rust for Python and Rust!
2021-06-08 10031 0.11.1 vapbloom Tetsy Common Vapory Bloom Filter
2022-02-19 6624 0.1.0 lockfree-cuckoohash A rust implementation of lockfree cuckoo hashmap
2017-12-11 5303 0.2.1 ethereum-bloom Log bloom implementation for Ethereum.
2021-12-14 4250 0.2.2 Xorfilter No alloc membership approximation
2018-01-16 3974 0.1.1 scalable\_bloom\_filter Scalable Bloom Filter
2021-06-06 3966 0.29.1 librualg Collection of basic algorithms for everyday development
2019-05-24 3383 0.4.1 tinysearch-cuckoofilter Cuckoo Filter: Practically Better Than Bloom
2022-09-13 3212 1.2.0 bloomy A simple Bloom filter using only two hash functions
2023-01-22 3002 0.2.2 scalable\_cuckoo\_filter A variant of Cuckoo Filter whose size automatically scales as necessary
2020-10-12 2997 0.8.0 cuckoo Cuckoo search algorithm
2016-04-15 2147 0.2.0 multibloom A collection of libraries including a number of different types of bloom filters. Currently a work in progress
2019-05-13 2028 0.5.1 sbloom Sophon bloom filter
2023-01-01 1983 3.1.0 fides Fides is a library for cryptographic primitives.
2018-11-06 1741 0.1.0 bloom-filter-rs A Bloom Filter implementation in Rust
2019-07-30 1485 0.11.1 xx-bloomfilter Bloom filter implementation using xx hash
2022-10-10 1292 0.1.1 cascara Implementation of TinyLFU cache
2021-12-10 1228 0.1.6 sbf Spatial Bloom Filter, a probabilistic data structure that maps elements of a space to indexed disjoint subsets of that space.
2020-08-26 1200 0.1.5 plum Probabilistic data structures for rust
2021-03-10 1178 0.4.0 mkit Tools and macros for distributed and peer-to-peer applications
2022-09-13 1100 0.7.2 sets\_multisets Simple API for working with sets and multisets of elements of type usize
2021-09-08 1023 1.2.2 runiq-lib An efficient way to filter duplicate lines from input, à la uniq.
2020-05-28 1006 0.1.2 flit Bloom filter backed by xxHash
2020-11-10 909 (none) rust-bloomfilter A simple bloom filter implementation in Rust programming language.
2019-02-24 897 0.1.2 cuckoocache High performance concurrent cache
2016-10-26 865 0.1.0 selectors-bloom Bloom filter used in the selectors crate
2020-12-03 851 0.3.1 probably A library with various approximate computing algorithms
2016-12-12 849 0.1.0 bloom\_filter A bloom filter implementation
2019-08-13 815 0.3.0 stable-bloom-filter A Rust-implementation of a stable Bloom filter for filtering duplicates out of data streams.
2016-11-30 773 0.1.0 seabloom Yet Another Bloom Filter, this one using seahash
2021-08-05 719 0.1.6 bloom\_filter\_plus rust\_bloom\_filter
2021-01-02 671 0.2.1 bloom2 Fast, compressed 2-level bloom filter and bitmap
2023-01-19 655 (none) bitcoinleveldb-filter a filter block is stored near the end of a table file. It contains filters (eg blooms) for all data blocks in the table combined into a single filter block.
2017-06-12 604 0.1.0 bloom\_rs Tiny rust bloom filter implementation
2021-10-18 600 0.3.2 lupine A bloom filter using FX Hash with Kirsch and Mitzenmacher optimization.
2021-05-22 585 0.1.6 bloom\_filter\_plush rust\_bloom\_filter
2019-07-10 573 0.2.0 golomb-set A Golomb Coded Set implementation
2022-10-23 570 0.0.7 kmerutils Kmer counting, hashing
2017-09-27 562 0.0.1 bloom-filter-wbj Space efficient probabilistic hash set
2023-01-19 495 (none) bitcoin-cuckoo-cache high performance cache primitives
2022-10-15 482 1.14.3 safecoin-bloom Safecoin bloom filter
2021-02-28 455 0.1.0 blooms-db Vapory blooms database
2021-02-28 452 0.1.0 vapcore-bloom-journal Vapory Journaling bloom filter
2018-05-05 425 0.1.0 iblt Invertible bloom lookup table implementation
2023-01-19 420 (none) bitcoinleveldb-bloom bloom filters for the bitcoin leveldb
2022-03-07 388 0.2.0 roaring-bloom-filter bloom filter implementation in rust with roaring-bitmap
2018-12-31 382 0.1.0 rsbloom A simple bloom filter implementation in Rust
2023-02-06 377 0.4.1 ofilter OFilter is a fast thread-safe Bloom filter.
2019-11-08 361 1.0.0 mqf MQF, Mixed Quotient Filter, is a variant of CQF (Counting Quotient Filter)
2021-06-09 288 0.1.1 dakv\_cuckoo Cuckoo filter for dakv
2021-01-29 287 0.1.1 create-bloom-filter Small Rust application to create bloom filter of optimal size given a false positivity rate
2020-08-21 270 0.1.0 probabilistic\_data\_structures Probabilistic data structures in Rust Lang.
2022-12-11 247 0.2.3 quotient-filter A quotient filter implementation.
2021-08-25 238 0.1.1 iron\_rose Rust implementation of Invertable Bloom Filters & Strata Estimators as found in EppGooUye-SIGCOMM-11.pdf
2023-01-19 237 (none) bitcoin-bloom bloom filter is a probabilistic filter which SPV clients provide so we can filter the transactions we send them -- this allows for significantly more efficient transaction and block downloads
2023-02-06 220 0.3.2 disklru DiskLRU is an experimental LRU store.
2020-03-06 209 0.1.0 cuckoo\_filter a cuckoo filter implementation in rust
2020-12-07 191 0.1.0 bloom\_filter\_simple A simple and generic bloom filter implementation.
2020-12-02 179 0.1.0 bloomf Bloom Filter
2022-02-08 132 0.0.1 bloomer Bloom filter
2022-04-12 131 0.1.0 compressed\_map 'Static functions': compressed maps with the keys removed
2022-02-14 129 0.1.0 generic-bloom A generic implementation of Bloom filters using traits
2022-01-18 129 0.2.0 sbf-blake3 Spatial Bloom Filter, a probabilistic data structure that maps elements of a space to indexed disjoint subsets of that space.
2022-12-25 128 0.2.0 bfilters Simple bloom filter implementation in Rust.
2022-03-21 125 0.1.0 bloomfilter-rs A conveniently simple implemenation of a bloomfilter.
2023-01-15 95 0.1.2 qfilter Approximate Membership Query Filter (AMQ-Filter) based on the Rank Select Quotient Filter (RSQF)
2022-11-16 86 0.4.0 mmap-bitvec A library for working with bit-vectors backed by memory-mapped files
2022-12-27 75 1.0.0 rs-bucket-filter Skips slow scans using cache, bloom filter, ...
2023-01-18 42 0.1.0 kukoo A rust implementation of lockfree cuckoo hashmap
2022-11-13 42 0.1.0 yz-bll32 simple backend for bloom-like filter for partitions and tags of content-addressed data
2022-11-30 36 (none) memory-cache-rust memory-cache is a fast, concurrent cache library built with a focus on performance and correctness. The motivation to build Ristretto comes from the need for a contention-free cache in

​