{"id":20122887,"url":"https://github.com/freaky/blooming-rust","last_synced_at":"2025-07-02T06:04:47.897Z","repository":{"id":142942497,"uuid":"192953259","full_name":"Freaky/blooming-rust","owner":"Freaky","description":"Disk-backed Bloom Filters for Rust","archived":false,"fork":false,"pushed_at":"2019-06-20T16:34:22.000Z","size":11,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-02T20:30:55.354Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Rust","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/Freaky.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2019-06-20T16:26:20.000Z","updated_at":"2024-04-26T12:04:49.000Z","dependencies_parsed_at":"2023-04-07T07:00:55.877Z","dependency_job_id":null,"html_url":"https://github.com/Freaky/blooming-rust","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Freaky/blooming-rust","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Freaky%2Fblooming-rust","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Freaky%2Fblooming-rust/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Freaky%2Fblooming-rust/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Freaky%2Fblooming-rust/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Freaky","download_url":"https://codeload.github.com/Freaky/blooming-rust/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Freaky%2Fblooming-rust/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263083593,"owners_count":23411163,"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":[],"created_at":"2024-11-13T19:41:40.886Z","updated_at":"2025-07-02T06:04:47.832Z","avatar_url":"https://github.com/Freaky.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Blooming Rust\n\nYet another Rust [bloom filter](https://en.wikipedia.org/wiki/Bloom_filter),\nwith a focus on disk-based storage.\n\nThis was going to be used for path storage in Compactor, my Windows 10 filesystem\ncompression tool, but I settled on a simpler structure that better fit my needs.\n\nThe basics look like they work, but it's incomplete and badly tested and mainly\nhere for curiosity's sake.\n\n```rust\nuse blooming_rust::*;\n\n// 1024 items, 1% false-positive rate\nlet mut filter = BloomFilter::with_capacity_p(1024, 0.01);\n\nfilter.insert(\"foo\");\nfilter.insert(\"bar\");\nfilter.save(\"filter.bloom\").unwrap();\n\nlet mut filter = BloomFilter::load(\"filter.bloom\").unwrap();\nassert!(filter.contains(\"foo\"));\nassert!(filter.contains(BloomHash::from(\"bar\")));\nassert!(!filter.contains(\"baz\"));\n```\n\nThe filter accepts anything `Into\u003cBloomHash\u003e`, which accepts anything `Hash`.\nThis allows for re-using the same hash calculation for multiple filters, which\nmight be nice for scalable filters.\n\nIt also means you can use the same filter for multiple types, which may or may\nnot be desirable.  If not you may want to modify it to use `PhantomData` to tag\nthe filters and hashes with a given type.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreaky%2Fblooming-rust","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffreaky%2Fblooming-rust","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreaky%2Fblooming-rust/lists"}