Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mirage/bloomf
Efficient Bloom filters for OCaml
https://github.com/mirage/bloomf
bloom-filter mirageos ocaml
Last synced: 3 months ago
JSON representation
Efficient Bloom filters for OCaml
- Host: GitHub
- URL: https://github.com/mirage/bloomf
- Owner: mirage
- License: mit
- Created: 2019-06-06T16:36:56.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-01-03T12:57:17.000Z (about 3 years ago)
- Last Synced: 2024-05-09T23:26:01.889Z (9 months ago)
- Topics: bloom-filter, mirageos, ocaml
- Language: OCaml
- Homepage:
- Size: 68.4 KB
- Stars: 34
- Watchers: 23
- Forks: 6
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.md
- License: LICENSE
Awesome Lists containing this project
README
# Bloomf - Efficient Bloom filters for OCaml [![OCaml-CI Build Status](https://img.shields.io/endpoint?url=https%3A%2F%2Fci.ocamllabs.io%2Fbadge%2Fmirage%2Fbloomf%2Fmaster&logo=ocaml)](https://ci.ocamllabs.io/github/mirage/bloomf)
Bloom filters are memory and time efficient data structures allowing
probabilistic membership queries in a set.A query negative result ensures that the element is not present in the set,
while a positive result might be a false positive, i.e. the element might not be
present and the BF membership query can return true anyway.Internal parameters of the BF allow to control its false positive rate depending
on the expected number of elements in it.Online documentation is available [here](https://mirage.github.io/bloomf/).
## Install
The latest version of `bloomf` is available on opam with `opam install bloomf`.
Alternatively, you can build from sources with `make` or `dune build`.
## Tests
Some of the tests, measuring false positive rate or size estimation, might fail
once in a while since they are randomized. They are thus removed from `dune
runtest` alias.To run the whole test suite, run `dune build @runtest-rand` instead.
## Benchmarks
Micro benchmarks are provided for `create`, `add`, `mem` and `size_estimate`
operations. Expected error rate is 0.01.They preform OLS regression analysis using the development version of
[bechamel](https://github.com/dinosaure/bechamel). To reproduce them, pin
`bechamel` then run `dune build @bench`.