All Projects → preytaren → fastbloom

preytaren / fastbloom

Licence: MIT License
A simple but fast bloomfilter written in Python

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to fastbloom

Data Structures
Data-Structures using C++.
Stars: ✭ 121 (+476.19%)
Mutual labels:  bloom-filter, hash
Minperf
A Minimal Perfect Hash Function Library
Stars: ✭ 107 (+409.52%)
Mutual labels:  bloom-filter, hash
server
Hashtopolis - A Hashcat wrapper for distributed hashcracking
Stars: ✭ 954 (+4442.86%)
Mutual labels:  hash, hashes
bloomfilter
Simplistic (but fast) java implementation of a bloom filter.
Stars: ✭ 35 (+66.67%)
Mutual labels:  bloom-filter, hashes
ntHash
Fast hash function for DNA sequences
Stars: ✭ 66 (+214.29%)
Mutual labels:  bloom-filter, hash
Python Hashes
Interesting (non-cryptographic) hashes implemented in pure Python.
Stars: ✭ 213 (+914.29%)
Mutual labels:  bloom-filter, hash
Wyhash
The FASTEST QUALITY hash function, random number generators (PRNG) and hash map.
Stars: ✭ 410 (+1852.38%)
Mutual labels:  bloom-filter, hash
libfilter
High-speed Bloom filters and taffy filters for C, C++, and Java
Stars: ✭ 23 (+9.52%)
Mutual labels:  bloom-filter, bloomfilter
bloom
An in-memory bloom filter with persistence and HTTP interface
Stars: ✭ 31 (+47.62%)
Mutual labels:  bloom-filter, bloomfilter
komihash
Very fast, high-quality hash function (non-cryptographic, C) + PRNG
Stars: ✭ 68 (+223.81%)
Mutual labels:  bloom-filter, hash
fingerprint-brunch
A brunch plugin for cache busting assets
Stars: ✭ 15 (-28.57%)
Mutual labels:  hash
bcrypt
Swift implementation of the BCrypt password hashing function
Stars: ✭ 30 (+42.86%)
Mutual labels:  hash
murmur3
A rust implementation of murmur3
Stars: ✭ 48 (+128.57%)
Mutual labels:  hash
node-object-hash
Node.js object hash library with properties/arrays sorting to provide constant hashes. It also provides a method that returns sorted object strings that can be used for object comparison without hashes.
Stars: ✭ 69 (+228.57%)
Mutual labels:  hash
php-ntlm
Message encoder/decoder and password hasher for the NTLM authentication protocol
Stars: ✭ 14 (-33.33%)
Mutual labels:  hash
idy
👓 An ID obfuscator for ActiveRecord
Stars: ✭ 15 (-28.57%)
Mutual labels:  hash
awesome-identicons
A curated list of "Visual Hashs" (Identicon, Avatar, Fractal, RandomArt and general Hash Visualization)
Stars: ✭ 156 (+642.86%)
Mutual labels:  hash
LinuxHashCracker
🔨 Linux Hash Cracker
Stars: ✭ 19 (-9.52%)
Mutual labels:  hash
lthash
A homomorphic hash function
Stars: ✭ 61 (+190.48%)
Mutual labels:  hash
bloomfilter
Bloomfilter written in Golang, includes rotation and RPC
Stars: ✭ 61 (+190.48%)
Mutual labels:  bloom-filter

Fastbloom

A lightweight but fast Bloomfilter written in Python(2.7).

Introduction

Based on mmap and MurMur, Spooky hash functions as the base hashes. Use double hashing to reduce the number of hashes to two.

Requirements

Install boost and boost-python

  • Ubuntu

sudo apt-get install libboost-all-dev

  • Centos

sudo yum install boost-devel

  • OSX

brew install boost boost-python

Install pyhash

sudo pip install pyhash

Install fastbloom

sudo pip install fastbloom

Examples

>>> from fastbloom import BloomFilter
>>> filter_ = BloomFilter(10000, 0.001) # set size of input 1000, error rate 0.1%
>>> filter_.add('www.google.com')
>>> 'www.google.com' in filter_
True
>>> 'www.github.com' in filter_
False

Benchmark

When input_size set to 1000000, accepted_error_rate set to 0.01%

  • Memory consumption: 4 MB
  • Add operation: 7322.42 ops
  • Check operation: 24788.79 ops
  • Actual fault positive rate: 0.0000

You can just run the benchmark.py to see the actual benchmarks

Todo

  • add a faster bloomfilter
  • add save and restore functions(as files)
  • write a scalable bloomfilter
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].