A fast and simple probabilistic bloom filter that supports compression
Project description
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, compressed bloomfilter file lrzip like
for compression: lz4>lzo>zlib>bz2>lzma
for decompression: lzma>bz2>zlib>lzo>lz4
- Stats
- Entropy analysis
- Internal and external hashing of data.
- raw filter merging
Installing:
sudo pip install fastbloomfilter
External creating of the bloom filter file:
python mkbloom.py /tmp/filter.blf
Importing:
from fastBloomFilter import bloom
bf = bloom.BloomFilter(filename='/tmp/filter.blf')
Adding data to it:
bf.add('30000')
bf.add('1230213')
bf.add('1')
Adding data and at the same time querying it:
print(bf.update('1')) # True
print(bf.update('1')) # True
print(bf.update('2')) # False
print(bf.update('2')) # True
Printing stats:
bf.stat()
Or:
bf.info()
Querying data:
print(bf.query('1')) # True
print(bf.query('1230213')) # True
print(bf.query('12')) # False
Contributons:
Are welcome!
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file fastBloomFilter-0.0.11.tar.gz
.
File metadata
- Download URL: fastBloomFilter-0.0.11.tar.gz
- Upload date:
- Size: 8.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.9.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 781ad3e431df5975c42f56d05ce2346cab039e56c1a130ee7715f58f75968ea0 |
|
MD5 | 8a80e5fde4bed885243f194c7cf6e76b |
|
BLAKE2b-256 | 64b85b6db8f449193db0dad8138f122f0d122d95c3c505d688307e1014076869 |
File details
Details for the file fastBloomFilter-0.0.11-py3-none-any.whl
.
File metadata
- Download URL: fastBloomFilter-0.0.11-py3-none-any.whl
- Upload date:
- Size: 20.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.53.0 CPython/3.9.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4dfa9fd352d556eddc60392dda5dba65bd7a61137ce4c0cffd4c26e152f34cd5 |
|
MD5 | 329201c77f6f0d7c72620b5fd819b3ea |
|
BLAKE2b-256 | 547272658a8dfc5044e83bf83dc16859434a147a06c30d57fb31de80a650329c |