Skip to main content

Cuckoo Filter Implementation Using Python

Project description

cuckoofilter

Cuckoofilter is an implementation of Cuckoo Filter using Python, which is thread-safe. Besides, the package can both be used in python2.x and python3.x.

Cuckoo Filter

Cuckoo filter first appeared in the paper Cuckoo Filter: Practically Better Than Bloom <https://www.cs.cmu.edu/~dga/papers/cuckoo-conext2014.pdf>_ by Bin Fan,David G. Andersen, Michael Kaminsky and Michael D. Mitzenmacher, which is used to replace Bloom filters for approximate set membership tests. Cuckoo filters support adding and removing items dynamically while achieving even higher performance than Bloom filters. For applications that store many items and target moderately low false positive rates, cuckoo filters have lower space overhead than space-optimized Bloom filters.

To know more details of Cuckoo Filter, please read the paper.

Installation

Install cuckoofilter:

.. code-block::

$ pip install cuckoopy

Or

.. code-block::

$ pip3 install cuckoopy

Usage

.. code-block:: python

>>> import cuckoofilter
>>> cf = cuckoofilter.CuckooFilter(capacity=100, fingerprint_size=1)

>>> cf.insert('test')
True

>>> cf.contains('test')
True

>>> cf.delete('test')
True

Testing

To test the package and generate a test coverage report, you should run .. code-block::

$ pip install pytest coverage pytest-cov $ pytest -v --cov=cuckoofilter --cov-report=html

Or .. code-block::

$ pip3 install pytest coverage pytest-cov $ python3 -m pytest .

License

GPL-3.0 License <https://github.com/shenaishiren/cuckoofilter/blob/master/LICENSE>_

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

cuckoofilter-0.0.0.2.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

cuckoofilter-0.0.0.2-py3-none-any.whl (17.6 kB view details)

Uploaded Python 3

File details

Details for the file cuckoofilter-0.0.0.2.tar.gz.

File metadata

  • Download URL: cuckoofilter-0.0.0.2.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for cuckoofilter-0.0.0.2.tar.gz
Algorithm Hash digest
SHA256 62df976c8c2298ca2a6b40971178a20145cbff5760cd8b4de0a964b3427f064f
MD5 4e37ffea2836909941af4f5d8cb63679
BLAKE2b-256 c232f502fab0279d1939ba31d08014f3ba8b8895c920f565204da69a540af97e

See more details on using hashes here.

File details

Details for the file cuckoofilter-0.0.0.2-py3-none-any.whl.

File metadata

  • Download URL: cuckoofilter-0.0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 17.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.7.3

File hashes

Hashes for cuckoofilter-0.0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 28f439afd9b3e2c958fed5d6cf7d15a9ea96f0c6e7305528655bf52f3c672342
MD5 107c62a158eb05d633d59c7cfa954c5f
BLAKE2b-256 a5d1f25d0341f3852726529ec05e79d5d5ee4e4f9421a78a9225816162f88a33

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page