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.

Files for cuckoofilter, version 0.0.0.2
Filename, size File type Python version Upload date Hashes
Filename, size cuckoofilter-0.0.0.2-py3-none-any.whl (17.6 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size cuckoofilter-0.0.0.2.tar.gz (4.1 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page