{"id":19049978,"url":"https://github.com/everlag/gofilter","last_synced_at":"2025-11-12T11:02:49.951Z","repository":{"id":15060529,"uuid":"17786727","full_name":"Everlag/goFilter","owner":"Everlag","description":"A basic bloom filter implementation. This is the destroyer of caches.","archived":false,"fork":false,"pushed_at":"2014-03-15T22:45:28.000Z","size":144,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-02T09:44:13.982Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"jolira/onejar-maven-plugin","license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Everlag.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}},"created_at":"2014-03-15T22:14:08.000Z","updated_at":"2014-03-15T22:45:28.000Z","dependencies_parsed_at":"2022-07-16T03:16:18.472Z","dependency_job_id":null,"html_url":"https://github.com/Everlag/goFilter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Everlag%2FgoFilter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Everlag%2FgoFilter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Everlag%2FgoFilter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Everlag%2FgoFilter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Everlag","download_url":"https://codeload.github.com/Everlag/goFilter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240106483,"owners_count":19748649,"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-08T23:12:28.792Z","updated_at":"2025-11-12T11:02:49.903Z","avatar_url":"https://github.com/Everlag.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"goFilter\n========\n\nA basic bloom filter implementation in the wonderful go. This is the destroyer of caches.\n\nUint64s are used via bitwise operations to get 512MB of memory usage versus the 4GB that would be used by a naive bool array implementation.\n\nSHA256 is the supported hash function as my uses required a cryptographic quality hash. Switching for a faster hash function from the standard lib would be trivial.\n\nSerialization is supported to JSON with optional compression.\n\nTesting and Benching\n------\nA test file is included. Run `go test` while in the directory the package is in and you'll get if it passes.\nThe serialization tests are commented out for the fact that they take a long time.\n\n\nBenchmarks are run under the same environment as the tests but with `go test -bench=\".*\"`\n\nThree degrees of usage are given for benchmarks which are based around hash iterations per item address lookup. Additionally, a AddSpeedStandardHashRef is provided to gauge the performance difference between a naive implementation relying on a bool array verus the provided bitwise method.\n\nSample benchmark results from an i5 2500k with a terrible 16GB memory configuration(Two different vendors and base clock speeds.... ewww) is:\n\n    BenchmarkAddSpeedLargeHash           100          18487347 ns/op\n    BenchmarkAddSpeedModerateHash       1000           1818730 ns/op\n    BenchmarkAddSpeedStandardHash     100000             24468 ns/op\n    BenchmarkAddSpeedStandardHashRef          100000             19687 ns/op\n    BenchmarkCheckSpeedLargeHash         100          12951644 ns/op\n    BenchmarkCheckSpeedModerateHash     2000           1293164 ns/op\n    BenchmarkCheckSpeedStandardHash   100000             19482 ns/op","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feverlag%2Fgofilter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feverlag%2Fgofilter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feverlag%2Fgofilter/lists"}