A collection of Bloom filter implementations in Go, including standard, partitioned, and scalable variants.
bloom is a Go library implementing several types of Bloom filters—probabilistic data structures that efficiently test whether an element is a member of a set. It solves the problem of memory-efficient membership queries while allowing for a configurable false positive rate. The library includes standard, partitioned, and scalable variants to accommodate different use cases and performance requirements.
Go developers who need efficient set membership testing in applications where memory constraints are important and a small false positive rate is acceptable. This includes database systems, network routers, caching layers, and distributed systems.
Developers choose bloom because it provides multiple well-implemented Bloom filter variants in pure Go with clear APIs and documented performance characteristics. The availability of partitioned and scalable implementations offers flexibility beyond basic Bloom filters found in other libraries.
Bloom filters implemented in Go.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Includes standard, partitioned, and scalable Bloom filters, offering flexibility for different performance and scalability needs, as outlined in the README's feature list.
Provides comprehensive performance comparisons through a linked external analysis, helping developers make informed decisions based on real-world metrics.
Focuses on practical usability with clean Go implementations, ideal for integrating into memory-constrained applications without bloat.
Allows tuning of capacity and false positive probability, enabling optimization for specific use cases like caching or duplicate detection.
The README is minimal, with examples only in *_test.go files, making it harder for newcomers to quickly understand and implement the library.
Only implements core Bloom filter variants without advanced features like counting filters or built-in serialization, which may require additional coding for production use.
Benchmark data is hosted externally, risking link rot or outdated information, and lacks integrated performance testing within the repository.