Skip to main content

A high performance persistent bloom filter

Project description

[![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.

  1. 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

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

Hydra-2.5.tar.gz (82.4 kB view details)

Uploaded Source

File details

Details for the file Hydra-2.5.tar.gz.

File metadata

  • Download URL: Hydra-2.5.tar.gz
  • Upload date:
  • Size: 82.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for Hydra-2.5.tar.gz
Algorithm Hash digest
SHA256 247091b9c279c77686ea995f0f07070a28870c1942959b1474ad57076074384a
MD5 24ed6ae0dbff2c3b5bf2c657ef071382
BLAKE2b-256 6eac7a7596cb752fe807be2f6fa11ed561e39efa86f556214733fc7df0e985d9

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 Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page