basho/ebloom

A NIF wrapper around a basic bloom filter.

C++

62

57 commits

updated Aug 13, 2026

See the code

README

* ebloom
** Overview
[[http://travis-ci.org/basho/ebloom][Travis-CI]] :: [[https://secure.travis-ci.org/basho/ebloom.png]]

=ebloom= is a NIF wrapper around a basic bloom filter.

** Quick Start
   You must have [[http://erlang.org/download.html][Erlang/OTP R13B04]] or later and a GNU-style build
   system to compile and run =ebloom=.

#+BEGIN_SRC shell
git clone git://github.com/basho/ebloom.git
cd ebloom
make
#+END_SRC

   Start up an Erlang shell with the path to =ebloom= included.

#+BEGIN_SRC shell
erl -pa path/to/ebloom/ebin
#+END_SRC

   Create a new bloom filter, insert elements, and test for an
   elements presence.

#+BEGIN_SRC erlang
1> PredictedElementCount=5.
5
2> FalsePositiveProbability=0.01.

3> RandomSeed=123.
123
4> {ok, Ref} = ebloom:new(PredictedElementCount, FalsePositiveProbability, RandomSeed).
{ok,<<>>}
5> ebloom:insert(Ref, <<"abcdef">>).
ok
6> true = ebloom:contains(Ref, <<"abcdef">>).
true
7> false = ebloom:contains(Ref, <<"zzzzzz">>).
false
#+END_SRC

** Contributing
   We encourage contributions to =ebloom= from the community.

   1) Fork the =ebloom= repository on [[https://github.com/basho/ebloom][Github]].
   2) Clone your fork or add the remote if you already have a clone of
      the repository.
#+BEGIN_SRC shell
git clone git@github.com:yourusername/ebloom.git
# or
git remote add mine git@github.com:yourusername/ebloom.git
#+END_SRC
   3) Create a topic branch for your change.
#+BEGIN_SRC shell
git checkout -b some-topic-branch
#+END_SRC
   4) Make your change and commit. Use a clear and descriptive commit
      message, spanning multiple lines if detailed explanation is
      needed.
   5) Push to your fork of the repository and then send a pull-request
      through Github.
#+BEGIN_SRC shell
git push mine some-topic-branch
#+END_SRC
   6) A Basho engineer or community maintainer will review your patch
      and merge it into the main repository or send you feedback.

Not written in Markdown, so it's shown here as plain text — view it formatted on GitHub.

Contributors

dizzyd

16 commits

argv0

9 commits

dreverri

8 commits

martinsumner

6 commits

basho/ebloom

A NIF wrapper around a basic bloom filter.

C++

62

57 commits

updated Aug 13, 2026

See the code

README

* ebloom
** Overview
[[http://travis-ci.org/basho/ebloom][Travis-CI]] :: [[https://secure.travis-ci.org/basho/ebloom.png]]

=ebloom= is a NIF wrapper around a basic bloom filter.

** Quick Start
   You must have [[http://erlang.org/download.html][Erlang/OTP R13B04]] or later and a GNU-style build
   system to compile and run =ebloom=.

#+BEGIN_SRC shell
git clone git://github.com/basho/ebloom.git
cd ebloom
make
#+END_SRC

   Start up an Erlang shell with the path to =ebloom= included.

#+BEGIN_SRC shell
erl -pa path/to/ebloom/ebin
#+END_SRC

   Create a new bloom filter, insert elements, and test for an
   elements presence.

#+BEGIN_SRC erlang
1> PredictedElementCount=5.
5
2> FalsePositiveProbability=0.01.

3> RandomSeed=123.
123
4> {ok, Ref} = ebloom:new(PredictedElementCount, FalsePositiveProbability, RandomSeed).
{ok,<<>>}
5> ebloom:insert(Ref, <<"abcdef">>).
ok
6> true = ebloom:contains(Ref, <<"abcdef">>).
true
7> false = ebloom:contains(Ref, <<"zzzzzz">>).
false
#+END_SRC

** Contributing
   We encourage contributions to =ebloom= from the community.

   1) Fork the =ebloom= repository on [[https://github.com/basho/ebloom][Github]].
   2) Clone your fork or add the remote if you already have a clone of
      the repository.
#+BEGIN_SRC shell
git clone git@github.com:yourusername/ebloom.git
# or
git remote add mine git@github.com:yourusername/ebloom.git
#+END_SRC
   3) Create a topic branch for your change.
#+BEGIN_SRC shell
git checkout -b some-topic-branch
#+END_SRC
   4) Make your change and commit. Use a clear and descriptive commit
      message, spanning multiple lines if detailed explanation is
      needed.
   5) Push to your fork of the repository and then send a pull-request
      through Github.
#+BEGIN_SRC shell
git push mine some-topic-branch
#+END_SRC
   6) A Basho engineer or community maintainer will review your patch
      and merge it into the main repository or send you feedback.

Not written in Markdown, so it's shown here as plain text — view it formatted on GitHub.

Contributors

dizzyd

16 commits

argv0

9 commits

dreverri

8 commits

martinsumner

6 commits

Languages

C++

83.0%

Erlang

11.5%

C

4.9%