Description
Bloom filter is a space efficient, probabilistic data structure, designed to test the membership of elements to a set.
blooming-bella alternatives and similar packages
Based on the "Data Structures" category.
Alternatively, view blooming-bella alternatives based on common mentions on social networks and blogs.
-
golang-set
A simple, battle-tested and generic set type for the Go language. Trusted by Docker, 1Password, Ethereum and Hashicorp. -
hyperloglog
HyperLogLog with lots of sugar (Sparse, LogLog-Beta bias correction and TailCut space reduction) brought to you by Axiom -
ttlcache
DISCONTINUED. An in-memory cache with item expiration and generics [Moved to: https://github.com/jellydator/ttlcache] -
Bloomfilter
DISCONTINUED. Face-meltingly fast, thread-safe, marshalable, unionable, probability- and optimal-size-calculating Bloom filter in go -
hilbert
DISCONTINUED. Go package for mapping values to and from space-filling curves, such as Hilbert and Peano curves. -
cuckoo-filter
Cuckoo Filter go implement, better than Bloom Filter, configurable and space optimized 布谷鸟过滤器的Go实现,优于布隆过滤器,可以定制化过滤器参数,并进行了空间优化 -
go-rquad
:pushpin: State of the art point location and neighbour finding algorithms for region quadtrees, in Go -
nan
Zero allocation Nullable structures in one library with handy conversion functions, marshallers and unmarshallers
InfluxDB - Power Real-Time Data Analytics at Scale
Do you think we are missing an alternative of blooming-bella or a related project?
README
blooming-belle - A simple implementation of Bloom Filters
What?
Bloom filter is a space efficient, probabilistic data structure, designed to test the membership of elements to a set.
Trade-offs?
Being a space efficient data structure is it may return false positives, but always returns definite negatives.
Applications?
Testing for non-membership saves resources such as calls to a web server, checking a proxy cache. Google Chrome uses bloom filters as a check for malicious URLs.
blooming-bella
A bloom filter for integers. Uses mummur3,Super Fast Hash and marvin32 hashing algorithms
Example
bella, err := blooming_bella.NewBella(1000, 0.01)
if err != nil {
log.Fatal(err)
}
bella.Add(10)
bella.Add(121)
bella.Add(13)
bella.Add(111)
fmt.Println(bella.Test(10)) // => true
fmt.Println(bella.Test(104)) // => false
fmt.Println(bella.Test(110)) // => false
fmt.Println(bella.Test(13)) // => true
New
Added Super Fast Hashing algorithm
TODO
- [ ] Calculate "ideal" number of hash functions to use.
- [ ] Dynamically "generate" the hash functions. What does it mean to be alive?