{"id":23418145,"url":"https://github.com/vonmo/erbloom","last_synced_at":"2025-10-18T13:51:57.778Z","repository":{"id":57495841,"uuid":"121942138","full_name":"Vonmo/erbloom","owner":"Vonmo","description":"Safe and Fast Bloom Filter + FBFs for Erlang","archived":false,"fork":false,"pushed_at":"2023-08-16T11:39:05.000Z","size":901,"stargazers_count":56,"open_issues_count":1,"forks_count":13,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-03-15T02:13:38.516Z","etag":null,"topics":["bloom-filter","elixir","erlang","nifs","rust","rustler"],"latest_commit_sha":null,"homepage":"","language":"Erlang","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Vonmo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-02-18T10:38:58.000Z","updated_at":"2024-01-30T19:28:26.000Z","dependencies_parsed_at":"2024-12-23T00:15:48.606Z","dependency_job_id":"8a842d83-6111-402b-833e-e27a18320425","html_url":"https://github.com/Vonmo/erbloom","commit_stats":{"total_commits":60,"total_committers":6,"mean_commits":10.0,"dds":"0.44999999999999996","last_synced_commit":"36d943e0ac8b3cf7272e615b622d3767872f8deb"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vonmo%2Ferbloom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vonmo%2Ferbloom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vonmo%2Ferbloom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Vonmo%2Ferbloom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Vonmo","download_url":"https://codeload.github.com/Vonmo/erbloom/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248560357,"owners_count":21124636,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bloom-filter","elixir","erlang","nifs","rust","rustler"],"created_at":"2024-12-23T00:15:28.771Z","updated_at":"2025-10-18T13:51:52.720Z","avatar_url":"https://github.com/Vonmo.png","language":"Erlang","funding_links":[],"categories":[],"sub_categories":[],"readme":"# erbloom\nSafe and Fast Bloom Filter + FBFs for Erlang\n\n![CI](https://github.com/Vonmo/erbloom/workflows/CI/badge.svg?branch=master)\n\n[Online Documentation](https://hexdocs.pm/erbloom/)\n\n## Features:\n* [Bloom filter structure](https://en.wikipedia.org/wiki/Bloom_filter) (type: `bloom`)\n* [Forgetful Bloom Filters](http://dprg.cs.uiuc.edu/docs/fbf_cac15/fbfpaper-2.pdf) (type: `fbf`)\n\n## Supported OS:\n* linux\n* macos\n* windows\n\n## Deps definition:\nmix.exs:\n`{:erbloom, \"~\u003e 2.1.0-rc.2\"}`\n\nrebar.config:\n`{erbloom, \"2.1.0-rc.2\"}`\n\nerlang.mk:\n`dep_erbloom = hex 2.1.0-rc.2`\n\n## Using as a lib\n1. Add deps in rebar.conf:\n  ```\n  {deps, [\n      {erbloom, \".*\", {git, \"https://github.com/Vonmo/erbloom.git\", {tag, \"v2.0.2\"}}}      \n  ]}\n  ```\n2. Now you can create a new filter instance:\n  `{ok, Filter} = bloom:new(9585059,1000000).`\n   or filter with wanted rate of false positives: \n   `bloom:new_optimal(1000000, 0.55).`\n3. Create a new forgetful filter:\n   `{ok, Filter} = bloom:new_forgetful(BitmapSize, ItemsCount, NumFilters, RotateAfter).`\n   or with fp_rate:\n   `bloom:new_forgetful_optimal(ItemsCount, NumFilters, RotateAfter, FpRate).`\n3. Set a new element\n  `bloom:set(Filter, \"somekey\").`\n4. Check up element\n  `bloom:check(Filter, \"anotherkey\").`\n5. Serialize\n   `{ok, Binary} = bloom:serialize(Filter).`\n6. Deserialize\n   `bloom:deserialize(Binary).`\n\n## Docker environment\n* `make build_imgs` - build docker images\n* `make up` - run sandbox\n* `make down` - terminate sandbox\n* `make tests` - run tests\n* `make lint` - linter\n* `make xref` - xref analysis\n* `make prod` - generate release for target\n* `make doc` - generate documentation from EDoc\n\n##\nWithout docker you must install erlang \u003e=20.1 and rust \u003e=1.23 on your machine. After you can run these goals:\n**release:**\n`rebar3 as prod release`\n\n**test:**\n`rebar3 as test ct`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvonmo%2Ferbloom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvonmo%2Ferbloom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvonmo%2Ferbloom/lists"}