@flowscripter/flowscripter-io-cli-hash-native

中文文档
2.0.9发布于 2026/11/12MITTypeScriptES Module零依赖构建来源已验证近 30 天下载 2354

Rust-backed sha256 hasher for flowscripter-io-cli, exposed via Bun FFI

原始使用文档
文档目录6 节
  1. Bun Module Usage
  2. Development
  3. Documentation
  4. Overview
  5. API
  6. License

flowscripter-io-cli-hash-native

version build docs rust doc license: MIT

Rust-backed sha256 hasher for flowscripter-io-cli, exposed via Bun FFI.

Bun Module Usage

Add the module:

bun add @flowscripter/flowscripter-io-cli-hash-native

Use the module:

import { initNativeLib, Sha256Hasher } from "@flowscripter/flowscripter-io-cli-hash-native";

await initNativeLib();

const hasher = new Sha256Hasher();
hasher.update(new TextEncoder().encode("hello"));
const digest = hasher.final();

Development

Install dependencies:

bun install

Build (produces dist/ for Node.js and TypeScript consumers; Bun uses raw source directly):

bun run build

Test:

cargo test

cargo build --release && FLOWSCRIPTER_HASH_NATIVE_DEV_BUILD=1 bun test

By default the native library is loaded from ~/.flowscripter/lib (downloaded from the release if missing or if it does not match its checksum). Setting FLOWSCRIPTER_HASH_NATIVE_DEV_BUILD=1 makes the package prefer its own target/release build instead.

Format:

cargo fmt && bunx oxfmt

Lint:

bunx oxlint index.ts src/ tests/

Generate HTML API Documentation:

bunx typedoc index.ts

Documentation

Overview

Sha256Hasher wraps a native Rust sha2 implementation behind three extern "C" functions (hasher_init, hasher_update, hasher_final) loaded via bun:ffi's dlopen.

Importing the package has no side effects. initNativeLib() must be awaited before the first Sha256Hasher is created: it resolves, downloads and verifies the native library, then loads it once.

Each release publishes a <library file>.shasum (SHA-256) sibling asset for every native library. A download is written to a temporary file, checked against that checksum and only then renamed into ~/.flowscripter/lib along with its .shasum. An already installed library is verified against its .shasum before it is loaded, and initNativeLib() rejects if verification fails.

update() accepts a JS-owned Uint8Array and passes a raw pointer straight into the synchronous Rust call using bun:ffi's ptr() - no further copy is made once the bytes are in JS memory.

updatePointer() accepts an already-raw pointer/length pair - for example a chunk that originated from a native source and never had a JS-owned copy - and passes it straight through to the Rust call with no copy at all.

The resulting 32-byte digest is copied back to JS by final(), which is negligible in size regardless of how much data was hashed.

API

Link to auto-generated API docs:

API Documentation

License

MIT © Flowscripter

版本与发布记录

@flowscripter/flowscripter-io-cli-hash-native 共发布 30 个版本,首次发布于 2026/08/27;过去 12 个月发布了 30 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2.0.9latest2026/11/123 天前
2.0.82026/11/123 天前
2.0.72026/11/096 天前
2.0.62026/11/0510 天前
2.0.52026/10/2917 天前
2.0.42026/10/2620 天前

关于 @flowscripter/flowscripter-io-cli-hash-native 的常见问题

@flowscripter/flowscripter-io-cli-hash-native 是什么?

Rust-backed sha256 hasher for flowscripter-io-cli, exposed via Bun FFI

如何安装 @flowscripter/flowscripter-io-cli-hash-native?

在项目目录运行 npm install @flowscripter/flowscripter-io-cli-hash-native,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:typescript(^7.0.2)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@flowscripter/flowscripter-io-cli-hash-native 支持 TypeScript 吗?

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

@flowscripter/flowscripter-io-cli-hash-native 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@flowscripter/flowscripter-io-cli-hash-native 可以商用吗?

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

@flowscripter/flowscripter-io-cli-hash-native 的下载量有多少?

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

@flowscripter/flowscripter-io-cli-hash-native 还在维护吗?

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