Metadata-Version: 2.1
Name: cuckoofilter
Version: 0.0.0.2
Summary: Cuckoo Filter Implementation Using Python
Home-page: https://github.com/beaulian/cuckoofilter
Author: Jiawen Guan
Author-email: jesus.jiawen@gmail.com
License: GPL-3.0
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: License :: OSI Approved :: GNU General Public License (GPL)
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Description-Content-Type: text/markdown
Requires-Dist: mmh3

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>`_


