https://github.com/yito88/blossom
Simple Bloom filter
https://github.com/yito88/blossom
bloomfilter
Last synced: about 1 month ago
JSON representation
Simple Bloom filter
- Host: GitHub
- URL: https://github.com/yito88/blossom
- Owner: yito88
- License: epl-2.0
- Created: 2020-05-04T07:33:05.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-09-17T15:12:43.000Z (almost 3 years ago)
- Last Synced: 2025-01-12T04:16:51.775Z (over 1 year ago)
- Topics: bloomfilter
- Language: Clojure
- Size: 17.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://clojars.org/blossom)
[](https://github.com/yito88/blossom/actions)
# blossom
A simple Bloom filter
## Usage
```clojure
(require '[blossom.core :as blossom])
(let [bf (blossom/make-filter {})]
(blossom/add bf "a")
(blossom/add bf "abc")
(prn (blossom/hit? bf "a")) ;; -> true
(prn (blossom/hit? bf "bc")) ;; -> false
(prn (blossom/hit? bf "abc"))) ;; -> true
```
- `make-filter` makes a Bloom filter with the following paramters
```clojure
(blossom/make-filter {:hash-size "SHA-256"
:size 1024
:num-hashes 3
:thread-safe? false})
```
- `hash-algo`: You can specify an algorithm for the hash function. "MD2", "MD5", "SHA-1", "SHA-224", "SHA-256", "SHA-384" or "SHA-512" can be set. By default, "SHA-256" will be set.
- `size`: Bloom filter's size in bits. By default, the size will be 1024 bits.
- `num-hashes`: This specifies the number of bits set to the filter when an item is added. By default, this will be 3.
- `thread-safe?`: If this is true, a thread-safe filter is made. The performance of the filter will be lower than that of a filter with `{:thread-safe false}`. BY default, it will be false.