A pure Elixir implementation of Scalable Bloom Filters for probabilistic set membership testing.
Bloomex is a pure Elixir library that implements Scalable Bloom Filters, a probabilistic data structure for efficient set membership testing. It provides space-efficient storage with controlled false positive rates, making it suitable for applications where exact answers are not required but performance and memory usage are critical.
Elixir developers building applications that require efficient probabilistic set membership checks, such as caching systems, duplicate detection, or network security tools.
Developers choose Bloomex for its idiomatic Elixir interface, no external dependencies, and configurable parameters that allow tuning of capacity, error rates, and hash functions to balance memory and accuracy.
:hibiscus: A pure Elixir implementation of Scalable Bloom Filters
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
No external dependencies ensure easy integration into Elixir projects, as highlighted in the README's key features, simplifying deployment and maintenance.
Automatically grows to accommodate more elements while maintaining bounded false positive rates, based on scalable bloom filter principles, making it suitable for dynamic datasets.
Supports pluggable hash functions like Murmur, allowing customization for performance or cryptographic needs, as demonstrated in the README examples.
Allows adjustment of initial capacity, error rates, and scaling factor to balance memory usage and false positive probability, per the configurable parameters feature.
As a pure Elixir library, it may have higher CPU and memory usage compared to native implementations, potentially impacting latency in high-throughput scenarios.
Focuses on core bloom filter functionality and lacks built-in support for features like serialization, persistence, or distributed operations, which some applications might require.
For optimal hashing, users must install and configure external packages like Murmur, adding complexity to setup and maintenance, as noted in the README examples.