An open API service indexing awesome lists of open source software.

https://github.com/preciz/talan

Probabilistic data structures (bloom filter / counting bloom filter / linear counter)
https://github.com/preciz/talan

bloom-filter cardinality-estimation membership

Last synced: about 2 months ago
JSON representation

Probabilistic data structures (bloom filter / counting bloom filter / linear counter)

Awesome Lists containing this project

README

        

# Talán

[![test](https://github.com/preciz/talan/actions/workflows/test.yml/badge.svg)](https://github.com/preciz/talan/actions/workflows/test.yml)

Probabilistic data structures in Elixir:
* Bloom filter for membership estimation
* Counting bloom filter for membership & cardinality estimation with delete support
* Linear probabilistic counter for cardinality estimation

Documentation can be found at [https://hexdocs.pm/talan](https://hexdocs.pm/talan).

Talán is a Hungarian adverb meaning: maybe, perhaps, probably.

## Installation

Add `talan` to your list of dependencies in `mix.exs`:

**Note**: it requires OTP-21.2.1 or later.

```elixir
def deps do
[
{:talan, "~> 0.2.0"}
]
end
```

## Usage

```elixir
alias Talan.BloomFilter

bloom_filter = BloomFilter.new(1000)
bloom_filter |> BloomFilter.put("Barna")
bloom_filter |> BloomFilter.member?("Barna")
true
bloom_filter |> BloomFilter.member?("Kovacs")
false
```

## License

Talán is [MIT licensed](LICENSE).