Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Elixir
  3. bloomex

bloomex

MITElixirv1.2.0

A pure Elixir implementation of Scalable Bloom Filters for probabilistic set membership testing.

GitHubGitHub
111 stars8 forks0 contributors

What is bloomex?

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.

Target Audience

Elixir developers building applications that require efficient probabilistic set membership checks, such as caching systems, duplicate detection, or network security tools.

Value Proposition

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.

Overview

:hibiscus: A pure Elixir implementation of Scalable Bloom Filters

Use Cases

Best For

  • Implementing scalable duplicate detection in data processing pipelines
  • Building memory-efficient caching layers in Elixir applications
  • Creating probabilistic security filters for network traffic analysis
  • Developing systems that require approximate set membership queries with bounded false positives
  • Integrating bloom filters into Elixir projects without external dependencies
  • Tuning bloom filter parameters like initial capacity, error rates, and scaling factor for specific use cases

Not Ideal For

  • Applications requiring exact set membership with zero false positives, such as financial transaction validation
  • High-throughput, latency-sensitive systems where C or Rust-based bloom filter implementations offer better performance
  • Projects not using the BEAM ecosystem or Elixir, as it's a pure Elixir library
  • Use cases with small, static datasets where a simple hash table or set would be more memory-efficient and faster

Pros & Cons

Pros

Pure Elixir Implementation

No external dependencies ensure easy integration into Elixir projects, as highlighted in the README's key features, simplifying deployment and maintenance.

Configurable Scalability

Automatically grows to accommodate more elements while maintaining bounded false positive rates, based on scalable bloom filter principles, making it suitable for dynamic datasets.

Flexible Hashing Strategies

Supports pluggable hash functions like Murmur, allowing customization for performance or cryptographic needs, as demonstrated in the README examples.

Tunable Accuracy and Memory

Allows adjustment of initial capacity, error rates, and scaling factor to balance memory usage and false positive probability, per the configurable parameters feature.

Cons

Performance Overheads

As a pure Elixir library, it may have higher CPU and memory usage compared to native implementations, potentially impacting latency in high-throughput scenarios.

Limited Advanced Features

Focuses on core bloom filter functionality and lacks built-in support for features like serialization, persistence, or distributed operations, which some applications might require.

External Hash Dependency

For optimal hashing, users must install and configure external packages like Murmur, adding complexity to setup and maintenance, as noted in the README examples.

Frequently Asked Questions

Quick Stats

Stars111
Forks8
Contributors0
Open Issues0
Last commit5 years ago
CreatedSince 2014

Tags

#probabilistic-data-structures#hex#functional-programming#elixir#set-membership#bloom-filter#data-structures#erlang-vm

Built With

E
Elixir

Included in

Elixir13.1k
Auto-fetched 19 hours ago

Related Projects

flowflow

Computational parallel flows on top of GenStage

Stars1,614
Forks89
Last commit1 year ago
witchcraftwitchcraft

Monads and other dark magic for Elixir

Stars1,234
Forks60
Last commit2 years ago
machinerymachinery

Elixir State machine thin layer for structs

Stars568
Forks56
Last commit2 years ago
fusefuse

A Circuit Breaker for Erlang

Stars512
Forks52
Last commit4 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub