Skip to content

A header-only C++20 port of the C-based bloom filter implementation https://github.com/barrust/bloom/, inspired by the concurrent RingDB project. C++ brings the power of template parameters and C++20 guarantees conditions for their values to be defined at compile time.

Notifications You must be signed in to change notification settings

arajni3/modern_cpp_bloom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ModernCPPBloom

A header-only C++20 port of the C-based bloom filter implementation barrust/bloom. C++ brings the power of template parameters and C++20 guarantees conditions for their values to be defined at compile time using consteval (as well as constinit, though the latter is not used here).

This was originally defined in my RingDB project but the value of a bloom filter implementation in modern C++ stood out enough for it to become its own library. The underlying array in the bloom filter is aligned to avoid false sharing so that the bloom filter can be bootstrapped into any application that uses multiprocessing, such as RingDB. This implementation uses the gcem library for constexpr math functions, many of which will not be constexpr in the C++ standard until C++26.

This header-only library can be built using the build_bloom shell script contained in this project.

About

A header-only C++20 port of the C-based bloom filter implementation https://github.com/barrust/bloom/, inspired by the concurrent RingDB project. C++ brings the power of template parameters and C++20 guarantees conditions for their values to be defined at compile time.

Resources

Stars

Watchers

Forks

Packages

No packages published