GitHunt
SU

sus0pid/libbloom

A simple and small bloom filter implementation in plain C.

Introduction

This is libbloom, a simple and small bloom filter implementation in C.

If you are reading this you probably already know about bloom filters
and why you might use one. If not, the wikipedia article is a good intro:
http://en.wikipedia.org/wiki/Bloom_filter

Building

The Makefile assumes GNU Make, so run 'make' or 'gmake' as appropriate
on your system.

See Makefile comments for other build options.

The shared library will be in ./build/libbloom.so
A static library will be in ./build/libbloom.a

Sample Usage

#include "bloom.h"

struct bloom bloom;
bloom_init2(&bloom, 1000000, 0.01);
bloom_add(&bloom, buffer, buflen);

if (bloom_check(&bloom, buffer, buflen)) {
printf("It may be there!\n");
}

Documentation

Read bloom.h for more detailed documentation on the public interfaces.

License

This code (except MurmurHash2) is under BSD license. See LICENSE file.

See murmur2/README for info on MurmurHash2.

Languages

C79.3%Makefile10.4%Perl6.5%Roff3.1%Shell0.7%

Contributors

BSD 2-Clause "Simplified" License
Created November 10, 2025
Updated November 11, 2025