2
0
mirror of https://github.com/boostorg/bloom.git synced 2026-01-19 04:02:11 +00:00
joaquintides f758d9ac5d launched CI
2025-04-09 18:24:03 +02:00
2025-02-21 11:54:48 +01:00
2025-04-04 11:59:28 +02:00
2025-04-08 16:47:59 +02:00
2025-04-08 16:47:59 +02:00
2025-02-21 13:34:35 +01:00
2025-04-08 16:47:59 +02:00
2025-02-21 13:10:15 +01:00
2025-04-03 09:52:55 +02:00
2025-04-08 09:58:03 -07:00
2025-04-03 10:11:25 +02:00

Candidate Boost Bloom Library

Branch CI Drone status Documentation
Branch CI Drone status Documentation
BSL 1.0 C++11 required Header-only library

(Candidate) Boost.Bloom provides the class template boost::bloom::filter that can be configured to implement a classical Bloom filter as well as variations discussed in the literature such as block filters, multiblock filters, and more.

#include <boost/bloom/filter.hpp>
#include <cassert>
#include <string>

int main()
{
  // Bloom filter of strings with 5 bits set per insertion
  using filter = boost::bloom::filter<std::string, 5>;

  // create filter with a capacity of 1'000'000 **bits**
  filter f(1'000'000);

  // insert elements (they can't be erased, Bloom filters are insert-only)
  f.insert("hello");
  f.insert("Boost");
  //...

  // elements inserted are always correctly checked as such
  assert(f.may_contain("hello") == true);

  // elements not inserted may incorrectly be identified as such with a
  // false positive rate (FPR) which is a function of the array capacity,
  // the number of bits set per element and generally how the boost::bloom::filter
  // was specified
  if(f.may_contain("bye")) { // likely false
    //...
  }
}

Learn about Boost.Bloom

Install Boost.Bloom

Clone this repo, adjust your include paths and enjoy. Boost.Bloom is header-only and requires no building. A recent version of Boost is required.

Support

Contribute

Description
Mirrored via gitea-mirror
Readme 859 KiB
Languages
C++ 95.5%
Python 2%
CMake 1%
Shell 0.6%
Batchfile 0.5%
Other 0.4%