[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#966427: RFP: golang-github-greatroar-blobloom -- blocked Bloom filter package for Go (golang) with no runtime dependencies



Package: wnpp
Severity: wishlist

Package name    : golang-github-greatroar-blobloom
Version         : 0.2.1 (for syncthing 1.7.1)
URL             : https://github.com/greatroar/blobloom
License         : Apache-2.0
Programming Lang: Go
Description     : blocked Bloom filter package for Go (golang) with no runtime dependencies

Blobloom is a blocked Bloom filter package for Go (golang) with no
runtime dependencies.
.
Blocked Bloom filters are a cache-efficient variant of Bloom filters,
the well-known approximate set data structure. To quote Daniel Lemire,
they have unbeatable speed. See the directory benchmarks/ to determine
exactly how fast Blobloom is compared to other packages.
.
Blobloom does not provide hash functions for use with the Bloom
filter. Instead, it requires client code to supply hash values. That
means you get to pick the hash algorithm that is fastest for your
data, use a secure hash such as SipHash or reuse hashes that you've
already computed. You only need to supply one 64-bit hash value as
Blobloom uses the enhanced double hashing algorithm to synthesize any
further hash values it needs.

When I investigated what dependencies were missing in Debian for
syncthing 1.7.1 I found this one.

Best,
Nicholas


Reply to: