@duckduckgo/jsbloom

中文文档
1.0.2发布于 2021/04/15MITCommonJS零依赖近 30 天下载 4392

a fast javascript counting bloom filter implementation

原始使用文档
文档目录4 节
  1. Usage
  2. Testing
  3. Parameters
  4. API reference

#jsbloom

Build Status

A fast bloom filter implementation in JavaScript using the djb2 and sdbm algorithms.

From Less Hashing, Same Performance: Building a Better Bloom Filter by Adam Kirsch et al, it is possible to build k hash values from only 2 unique values. Hence, it is sufficient to have two unique hashes generated.

Usage

var filter = new JSBloom(items, false_probability_chance);

filter.addEntry("xyz");

filter.checkEntry("xyz"); // returns true

filter.checkEntry("yz"); // returns false

Testing

Testing is done with mocha and chai

npm install mocha chai
mocha

Parameters

items: ceiling of entries to add
false_probability_chance: chance of false positives to occur

JSBloom will automatically generate the needed bit array and amount of hashes needed to meet your requirements.

API reference

addEntry(str): adds str to bloom filter
addEntries(arr): iterates over arr and adds every entry within
checkEntry(str): checks if str in filter, returns false if definitely not, true if maybe
importData(base64, [number_of_hashes]): loads a base 64 LZW compressed Uint8Array
exportData(): returns base 64 encoded Uint8Array LZW as string
exportData(callback): returns the base 64 encoded Uint8Array LZW compressed to provided callback

版本与发布记录

@duckduckgo/jsbloom 共发布 1 个版本,首次发布于 2021/04/15;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.0.2latest2021/04/155 年前

关于 @duckduckgo/jsbloom 的常见问题

@duckduckgo/jsbloom 是什么?

a fast javascript counting bloom filter implementation

如何安装 @duckduckgo/jsbloom?

在项目目录运行 npm install @duckduckgo/jsbloom,或使用 pnpm add / yarn add / bun add。

@duckduckgo/jsbloom 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/duckduckgo__jsbloom 是否存在。

@duckduckgo/jsbloom 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@duckduckgo/jsbloom 可以商用吗?

@duckduckgo/jsbloom 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@duckduckgo/jsbloom 的下载量有多少?

根据 npm 官方下载统计,@duckduckgo/jsbloom 在 2026/10/13 – 2026/11/11 这 30 天内被下载 4,392 次,日均约 146 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@duckduckgo/jsbloom 还在维护吗?

最新版本 1.0.2 发布于 2021/04/15(5 年前);至今共发布 1 个版本,其中过去 12 个月发布了 0 个;首次发布于 2021/04/15。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。