Hydra


NameHydra JSON
Version 2.5 PyPI version JSON
download
home_pagehttp://github.com/crankycoder/Hydra
SummaryA high performance persistent bloom filter
upload_time2016-08-03 13:21:51
maintainerNone
docs_urlNone
authorVictor Ng
requires_pythonNone
licenseMIT License
keywords
VCS
bugtrack_url
requirements Cython flake8 nose
Travis-CI
coveralls test coverage No coveralls.
            [![Build Status](https://travis-ci.org/crankycoder/hydra.svg?branch=master)](https://travis-ci.org/crankycoder/hydra)

Hydra: The Python Bloom Filter.

Compile with Cython 0.24 or higher.

---

Hydra is a high performance bloom filter.  It's basically a port of
the Cassandra bloom filter with some fun Cython hackery.

1) It's persistent using memory mapped io.  On Linux, the mmap uses
the MAP_POPULATE flag so the entire file is loaded into kernel space
virtual memory.  In other words - fast.

2) The hash function uses the MurmurHash3 algorithm, so it should be
fast and have excellent key distribution and avalanche properties.

3) The filter exports a set-like interface. Use .add(..), .contains()
or use the "in" operator.

4) Tests. OMG what is wrong with people with no tests?

The filter supports periodic forced synchronization to disk using
fdatasync(), or you can just let the deallocator flush everything to
disk when your filter goes out of scope, or your process terminates.

Hydras are snakes with multiple heads.  They're also bad dudes with
snake logos on their chest who regularly try to beat on Nick Fury.
Now it's a bloom filter.  

Mostly, I couldn't bear to make this yet another PySomeLibraryName
library.


Build, install a dev build and test:

    $ pip install -r requirements.txt
    $ cythonize src/_hydra.pyx
    $ python setup.py develop
    $ python setup.py test

            

Raw data

            {
    "_id": null,
    "home_page": "http://github.com/crankycoder/Hydra",
    "name": "Hydra",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": null,
    "author": "Victor Ng",
    "author_email": "crankycoder@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/6e/ac/7a7596cb752fe807be2f6fa11ed561e39efa86f556214733fc7df0e985d9/Hydra-2.5.tar.gz",
    "platform": "UNKNOWN",
    "description": "[![Build Status](https://travis-ci.org/crankycoder/hydra.svg?branch=master)](https://travis-ci.org/crankycoder/hydra)\n\nHydra: The Python Bloom Filter.\n\nCompile with Cython 0.24 or higher.\n\n---\n\nHydra is a high performance bloom filter.  It's basically a port of\nthe Cassandra bloom filter with some fun Cython hackery.\n\n1) It's persistent using memory mapped io.  On Linux, the mmap uses\nthe MAP_POPULATE flag so the entire file is loaded into kernel space\nvirtual memory.  In other words - fast.\n\n2) The hash function uses the MurmurHash3 algorithm, so it should be\nfast and have excellent key distribution and avalanche properties.\n\n3) The filter exports a set-like interface. Use .add(..), .contains()\nor use the \"in\" operator.\n\n4) Tests. OMG what is wrong with people with no tests?\n\nThe filter supports periodic forced synchronization to disk using\nfdatasync(), or you can just let the deallocator flush everything to\ndisk when your filter goes out of scope, or your process terminates.\n\nHydras are snakes with multiple heads.  They're also bad dudes with\nsnake logos on their chest who regularly try to beat on Nick Fury.\nNow it's a bloom filter.  \n\nMostly, I couldn't bear to make this yet another PySomeLibraryName\nlibrary.\n\n\nBuild, install a dev build and test:\n\n    $ pip install -r requirements.txt\n    $ cythonize src/_hydra.pyx\n    $ python setup.py develop\n    $ python setup.py test\n",
    "bugtrack_url": null,
    "license": "MIT License",
    "summary": "A high performance persistent bloom filter",
    "version": "2.5",
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "md5": "24ed6ae0dbff2c3b5bf2c657ef071382",
                "sha256": "247091b9c279c77686ea995f0f07070a28870c1942959b1474ad57076074384a"
            },
            "downloads": -1,
            "filename": "Hydra-2.5.tar.gz",
            "has_sig": false,
            "md5_digest": "24ed6ae0dbff2c3b5bf2c657ef071382",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 82417,
            "upload_time": "2016-08-03T13:21:51",
            "upload_time_iso_8601": "2016-08-03T13:21:51.329920Z",
            "url": "https://files.pythonhosted.org/packages/6e/ac/7a7596cb752fe807be2f6fa11ed561e39efa86f556214733fc7df0e985d9/Hydra-2.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2016-08-03 13:21:51",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "crankycoder",
    "github_project": "Hydra",
    "travis_ci": true,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "Cython",
            "specs": []
        },
        {
            "name": "flake8",
            "specs": []
        },
        {
            "name": "nose",
            "specs": []
        }
    ],
    "lcname": "hydra"
}
        
Elapsed time: 0.05716s