2
0
mirror of https://github.com/boostorg/bloom.git synced 2026-01-19 04:02:11 +00:00
joaquintides c6dc86b561 containerized ubuntu 20.04 jobs (#5)
* upgraded ubuntu-20.04 to 22.04

* used ubuntu:20.04 container instead of upgrading to ubuntu-22.04

* installed clang-{10|11|12}
2025-04-21 13:32:18 +02: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-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
2025-04-20 12:53:33 +02:00

Candidate Boost Bloom Library

📢 Review announcement
Candidate Boost.Bloom will be officially reviewed for inclusion into Boost from May 13 to 22, 2025, see the review schedule page for details. All interested people are welcome to participate!

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%