bloomfilter3

A Bloom filter implementation in Python 3


License
MIT
Install
pip install bloomfilter3==1.0.2

Documentation

bloomfilter3

Python bloom-filter library with a focus on ease of use and high performance.

Motivation

This library was heavily inspired from the excellent bloom-filter2 library, however I decided to make some changes that enhanced functionality and ease of use.

Unfortunatly these changes makes the library non-backwards compatible, hence bloomfilter3 was born.

Credits and links can be found in AUTHORS.md.

Changes from bloom-filter2:

  • mmap only and by default
  • bloom filter parameters are stored WITH the bloom filter itself on disk, no need to keep track of parameters (max_elements, error_rate) seperatly
  • Simpler persistence

Installing

pip install bloomfilter3

Using

from bloom_filter3 import BloomFilter

# instantiate BloomFilter with custom settings,
# max_elements is how many elements you expect the filter to hold.
# error_rate defines accuracy; You can use defaults with
# `BloomFilter()` without any arguments. Following example
# is same as defaults:

bloom = BloomFilter(
  max_elements=10_000,
  error_rate=0.1
)

# Test whether the bloom-filter has seen a key:
assert "test-key" not in bloom

# Mark the key as seen
bloom.add("test-key")

# Now check again
assert "test-key" in bloom

Contributing

  • Please review CODE_OF_CONDUCT.md
  • Please make sure you do make tests and make lint before submitting a PR
  • Please make sure you add tests for any new functionality