# imurmurhash 中文文档

规范地址：https://npmcn.com/package/imurmurhash/

版本：0\.1\.4
npm 元数据更新时间：2023-06-22T16:32:20.870Z
中文译文更新时间：2026-11-04T22:06:31.188Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/imurmurhash
原文对照：https://npmcn.com/package/imurmurhash/?lang=original
项目主页：https://github.com/jensyt/imurmurhash-js
源码仓库：https://github.com/jensyt/imurmurhash-js

## 关键信息（来自 npm 元数据）

- 模块格式：CommonJS
- TypeScript 类型：未声明
- Node.js 要求：\>=0\.8\.19
- 运行依赖：0 个
- 首次发布：2013-07-31T23:41:36.514Z
- 最新版本发布：2013-08-24T20:45:23.169Z
- 近 30 天下载量：626546482（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：5（近 12 个月 0 个）

## 中文简介

MurmurHash3的增量实现

## 安装

```sh
npm install imurmurhash
```

也可以使用：`pnpm add imurmurhash`、`yarn add imurmurhash`、`bun add imurmurhash`

## README

# iMurmurHash.JS

基于JavaScript的MurmurHash3（32位）哈希算法的增量实现 [Gary Court的实施](https://github.com/garycourt/murmurhash-js)。

## 安装

要在浏览器中使用iMurmurHash， [下载最新版本](https://raw.github.com/jensyt/imurmurhash-js/master/imurmurhash.min.js) 并将其作为脚本包含在您的网站上。

```html
<script type="text/javascript" src="/scripts/imurmurhash.min.js"></script>
<script>
// Your code here, access iMurmurHash using the global object MurmurHash3
</script>
```

* * *

要在Node.js中使用iMurmurHash，请使用NPM安装该模块：

```bash
npm install imurmurhash
```

然后只需将其包含在脚本中：

```javascript
MurmurHash3 = require('imurmurhash');
```

## 简单的例子

```javascript
// Create the initial hash
var hashState = MurmurHash3('string');

// Incrementally add text
hashState.hash('more strings');
hashState.hash('even more strings');

// All calls can be chained if desired
hashState.hash('and').hash('some').hash('more');

// Get a result
hashState.result();
// returns 0x29d3f1e3
```

## 功能

### MurmurHash3 （\[string\], \[seed\]）

获取哈希状态对象，可选择使用给定的初始化 _字符串_ 和 _种子_。 _种子_ 如果提供，则必须为正整数。调用此函数而不使用 `new` 关键字将返回一个已重置的缓存状态对象。只要对象仅在单个线程中使用，并且在对该对象进行操作时不创建其他哈希值，就可以安全使用。如果不能满足此约束，则可以使用 `new` 来创建一个新的状态对象。例如:

```javascript
// Use the cached object, calling the function again will return the same
// object (but reset, so the current state would be lost)
hashState = MurmurHash3();
...

// Create a new object that can be safely used however you wish. Calling the
// function again will simply return a new state object, and no state loss
// will occur, at the cost of creating more objects.
hashState = new MurmurHash3();
```

如果您有不同的用例，这两种方法都可以混合使用。

* * *

### MurmurHash3.prototype。散列(字符串)

增量地添加 _字符串_ 到散列。可以根据需要对哈希状态对象调用该方法多次，包括在调用 `result()`． 返回 `this` 所以调用可以被链接。

* * *

### MurmurHash3.prototype。结果()

获取哈希结果为32位正整数。这将执行算法的尾部和终结器部分，但不会将结果存储在状态对象中。这意味着获得结果然后继续通过添加字符串是完全安全的 `hash`。

```javascript
// Do the whole string at once
MurmurHash3('this is a test string').result();
// 0x70529328

// Do part of the string, get a result, then the other part
var m = MurmurHash3('this is a');
m.result();
// 0xbfc4f834
m.hash(' test string').result();
// 0x70529328 (same as above)
```

* * *

### MurmurHash3.prototype。重置(种子)

重置状态对象以便重用，可选地使用给定的 _种子_ （与构造函数一样默认为0）。返回 `this` 所以调用可以被链接。

* * *

## 许可证(麻省理工学院)

版权所有(c) 2013加里法院，延斯泰勒

特此许可，免费授予任何人获得的副本 本软件及相关文档文件（“软件”），以处理 本软件不受任何限制，包括但不限于 使用、复制、修改、合并、发布、分发、再许可和/或出售的副本 软件，并允许软件提供给的人这样做， 但须符合以下条件：

上述版权声明和本许可声明应包括在所有 本软件的副本或实质性部分。

本软件是“按原样”提供的，没有任何形式的、明示的或明示的保证 默示，包括但不限于适销性、适用性的保证 为特定目的而非侵权。在任何情况下，作者或 版权持有人对任何索赔、损害或其他责任负有责任，无论 在合同、侵权或其他方面的诉讼中，由 与该软件的联系或对该软件的使用或其他交易。

## 常见问题

### imurmurhash 是什么？

MurmurHash3的增量实现

### 如何安装 imurmurhash？

在项目目录运行 npm install imurmurhash，或使用 pnpm add / yarn add / bun add。

### imurmurhash 支持 TypeScript 吗？

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

### imurmurhash 支持 ESM 还是 CommonJS？

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

### imurmurhash 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=0\.8\.19。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### imurmurhash 可以商用吗？

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

### imurmurhash 的下载量有多少？

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

### imurmurhash 还在维护吗？

最新版本 0\.1\.4 发布于 2013/08/25（13 年前）；至今共发布 5 个版本，其中过去 12 个月发布了 0 个；首次发布于 2013/08/01。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

