Skip to main content

Libraries.io SourceRank pypi downloads lint_python Upload Python Package CodeQL GitHub issues GitHub forks GitHub stars GitHub license

Simple and fast pythonic bloomfilter

From wikipedia: "A Bloom filter is a space-efficient probabilistic data structure, conceived by Burton Howard Bloom in 1970, that is used to test whether an element is a member of a set. False positive matches are possible, but false negatives are not – in other words, a query returns either "possibly in set" or "definitely not in set". Elements can be added to the set, but not removed (though this can be addressed with a "counting" filter); the more elements that are added to the set, the larger the probability of false positives."

This filter supports:

- Saving, reloading with pickle. 
- Stats
- Entropy analysis
- Internal and external hashing of data.
- raw filter merging

Installing:

sudo pip install fastbloomfilter

External creation of the bloom filter file:

python mkbloom.py /tmp/filter.blf

Importing:

>>> from fastBloomFilter import bloom
>>> bf = bloom.BloomFilter(array_size=1024**3)

Or

>>> from fastBloomFilter import bloom
>>> bf = bloom.BloomFilter(filename='/tmp/filter.blf')

Adding data to it:

>>> bf.add('30000')
>>> bf.add('1230213')
>>> bf.add('1')

Printing stats:

>>> bf.stat()

Or:

>>> bf.info()

Querying data:

>>> print(bf.query('1'))
True
>>> print(bf.query('1230213'))
True
>>> print(bf.query('12'))
False
>>> print(bf['1'])
True

Querying data and at the same time adding it:

>>> print(bf.update('1'))
False 
# False means the object wasn't existing and was added.
>>> print(bf.update('1')) 
True  
# True means the object existed and nothing new was added.
>>> print(bf.update('2'))
False
>>> print(bf.update('2'))
True

Merging two filters:

Create first filter:

>>> from fastBloomFilter import bloom
>>> bf1 = bloom.BloomFilter(array_size=1024**3)
>>> bf1.add("1")

Create second filter:

>>> from fastBloomFilter import bloom
>>> bf2 = bloom.BloomFilter(array_size=1024**3)
>>> bf2.add("2")

Merge the two filters into a third filter:

>>> bf3 = bf1 + bf2

Check the elements in the third filter:

>>> print(bf3["1"])
True
>>> print(bf3["2"])
True

Contributing

Contributons:
    Are welcome!
    Criteria: - They should not include hidden folders or files of any ide environment.
              - They should not delete big portions of the project.
              - They should not include files that does not have anything to do with the project.
              - They should not change the API. (API changes should be proposed with Issues as enhancements)
              - They should not include any obfuscated code.
              - They should not include binaries.
              - They should be in small PRs for faster reviewing process.
              - They should include a small testcase.
              - Any contribution not hornoring this criteria will be rejected until it does.

Metadata

Release files for fastbloomfilter 0.0.13

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fastbloomfilter 0.0.13
File Size Uploaded
fastbloomfilter-0.0.13.tar.gz 19.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fastbloomfilter 0.0.13
File Interpreter ABI Platform
fastbloomfilter-0.0.13-py3-none-any.whl Python 3 none any Details

Total release size: 40.7 kB

Release files / fastbloomfilter-0.0.13.tar.gz

Download URL fastbloomfilter-0.0.13.tar.gz
Size 19.6 kB
Tags Source
SHA-256 checksum
How to use checksums
5d548c915ea5e8ce4bbe29445d123aef3562703b46529e4150dbd09bc4b21f05
BLAKE2b-256 checksum
How to use checksums
ed695ec865a3c6b679f139ae14dfc21f18a95bcf7df1a60f5754fcfe88b6800a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 25, 2026.

Transparency log

Release files / fastbloomfilter-0.0.13-py3-none-any.whl

Download URL fastbloomfilter-0.0.13-py3-none-any.whl
Size 21.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
943997559608722ad6bce825c6990210368c6c28ccc955c39495919a747c9e96
BLAKE2b-256 checksum
How to use checksums
1c8b61d1ffb53d2e8de7229293acfc6a2a1b4c69a1ecf3a762fff0141af00108
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 25, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.13 This release

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.8

2 release files

0.0.4

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page