1234567891011121314151617 |
- This bloom filter implementation:
- 1) Has a constructor that accepts a maximum comfortable number of members and maximum appropriate error (false positive) rate, and
- derives the fiddly bits from that; most bloom filter modules ask the enduser to specify the fiddly bits themselves.
- 2) Has a nice test suite, including checks for error rate.
- 3) Is in pure Python that'll run on CPython 2.x, CPython 3.x, PyPy or Jython.
- 4) Has a pair of simple, fast hash functions that give a good error rate - they're better than many of the alternatives.
- They're not Murmur or Jenkins, but the tests strongly suggest that they're working well.
- 5) Passes pylint and pep8.
- 6) Supports adding elements, testing for membership, and'ing sets and or'ing sets.
- The code is derived from http://code.activestate.com/recipes/577686-bloom-filter/ and inherits that code's license (MIT).
- For more about Bloom Filters:
- http://en.wikipedia.org/wiki/Bloom_filter
- http://spyced.blogspot.com/2009/01/all-you-ever-wanted-to-know-about.html
|