@chainsafe/fast-crc32c

中文文档
4.2.0发布于 2025/01/28MITTypeScriptCommonJS零依赖近 30 天下载 1.8万

具有硬件加速度和软件回落的CRC32C算法.

中文使用文档
文档目录4 节
  1. 业绩
  2. 基准
  3. 安装
  4. 使用量

快转32c NPM version Build Status Dependency Status Coverage Status

fast-crc32c是用于节点.js的CRC-32C算法执行 硬件加速(通过) 挥发器/sse4 crc32 以Anand Suresh盟誓 当硬件加速失败时返回到软件执行中.

业绩

CRC-32C更快,然后是CRC-32, 这可以利用 CPU 的全部操作 注册宽度(64bit),而不是CRC-32的8bit.

当使用硬件加速时,CRC-32C比软件快7x~9x左右 已实施CRC-32C.

基准

3项经过测试的实施是:

  • se4 crc32c (中文(简体) ) 硬件加速 CRC-32C se4 曲线32
  • js crc32c (中文(简体) ) Javascript 已执行 CRC-32C
  • js 弧点32 Javascript 已执行 CRC-32 from 缓冲-弧32
$ yarn run benchmark
yarn run v1.17.3
$ node benchmark
sse4_crc32c_hw for inputs 1024B x 3,210,508 ops/sec ±2.09% (87 runs sampled)
sse4_crc32c_hw for inputs 16836819B, avg 2055B x 252 ops/sec ±2.90% (79 runs sampled)
sse4_crc32c_sw for inputs 1024B x 1,358,720 ops/sec ±1.31% (89 runs sampled)
sse4_crc32c_sw for inputs 16836819B, avg 2055B x 96.41 ops/sec ±1.42% (71 runs sampled)
js_crc32c for inputs 1024B x 409,615 ops/sec ±1.46% (89 runs sampled)
js_crc32c for inputs 16836819B, avg 2055B x 26.00 ops/sec ±0.72% (47 runs sampled)
js_crc32 for inputs 1024B x 403,262 ops/sec ±1.55% (90 runs sampled)
js_crc32 for inputs 16836819B, avg 2055B x 24.82 ops/sec ±1.70% (45 runs sampled)
1024B (英语)16836819B,avg 2055B (英语)
sse4 crc32c hw (英语)3,210,508项行动/秒252 行动/sec
sse4 crc32c sw (中文(简体) )1 358 720项行动/sec96.41 行动/sec
js crc32c (中文(简体) )409,615项行动/sec26.00 行动/sec
js 弧点32403 262项行动/sec24.82 行动/sec

安装

npm install fast-crc32c@^2.0.0 --save
# For node version before 6
# npm install fast-crc32c@^1.0.0 --save

使用量

var crc32 = require('fast-crc32c');
var result = crc32.calculate(data, initial);
  • 数据 需要, StringQ 缓冲, 需要消化的数据
  • 初次 可选,编号,初始CRC-32C摘要

版本与发布记录

@chainsafe/fast-crc32c 共发布 5 个版本,首次发布于 2021/05/26;过去 12 个月发布了 0 个版本。

版本发布日期距今
4.2.0latest2025/01/281.8 年前
4.1.12023/06/063 年前
4.1.02023/06/063 年前
4.0.02023/01/123 年前
3.0.02021/05/265 年前

关于 @chainsafe/fast-crc32c 的常见问题

@chainsafe/fast-crc32c 是什么?

具有硬件加速度和软件回落的CRC32C算法.

如何安装 @chainsafe/fast-crc32c?

在项目目录运行 npm install @chainsafe/fast-crc32c,或使用 pnpm add / yarn add / bun add。

@chainsafe/fast-crc32c 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@chainsafe/fast-crc32c 支持 ESM 还是 CommonJS?

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

@chainsafe/fast-crc32c 可以商用吗?

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

@chainsafe/fast-crc32c 的下载量有多少?

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

@chainsafe/fast-crc32c 还在维护吗?

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