# @nirs4all/formats-wasm 中文文档

规范地址：https://npmcn.com/package/%40nirs4all/formats-wasm/

版本：0\.2\.14
npm 元数据更新时间：2026-11-01T23:39:17.669Z
中文译文更新时间：2026-11-02T00:33:07.137Z
软件包许可：CECILL-2\.1 OR AGPL-3\.0-or-later

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

原始 npm 页面：https://www.npmjs.com/package/%40nirs4all/formats-wasm
原文对照：https://npmcn.com/package/%40nirs4all/formats-wasm/?lang=original
项目主页：https://github.com/GBeurier/nirs4all-formats#readme
源码仓库：https://github.com/GBeurier/nirs4all-formats

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

- 包体积（解压后）：7.2 MB，91 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2026-06-11T20:51:19.697Z
- 最新版本发布：2026-11-01T23:39:17.347Z
- 已发布版本数：16（近 12 个月 16 个）

## 中文简介

用于nirs4all格式的WebAssembly绑定。

## 安装

```sh
npm install @nirs4all/formats-wasm
```

也可以使用：`pnpm add @nirs4all/formats-wasm`、`yarn add @nirs4all/formats-wasm`、`bun add @nirs4all/formats-wasm`

## README

# nirs4all-formats （WebAssembly / JS）

的浏览器和节点友好桥接 `nirs4all-formats` 锈病核心。它运行 格式嗅探器 **和** 解码器完全在WebAssembly中，从内存中 字节-不需要文件系统。

## 构建

```bash
# Browser (ES modules)
wasm-pack build bindings/wasm --target web --release
# Node.js / Bun
wasm-pack build bindings/wasm --target nodejs --release --out-dir pkg-node
```

这会释放JS胶水， `.wasm` binary和TypeScript类型 `pkg/` (或 `pkg-node/`）. 标记版本将该表面发布为 `@nirs4all/formats-wasm` npm。

## 表面

```ts
import init, {
  version, features, readerCatalog, probeBytes, openBytes, openWithSidecars,
} from "./pkg/nirs4all_formats_wasm.js";

await init();

version();   // "0.1.0-alpha.1"
features();  // { hdf5: true, matlab: true, parquet: true }
readerCatalog(); // [{ reader: "nirs4all_formats::readers::jcamp" }, ...]

const bytes = new Uint8Array(await file.arrayBuffer());

// Sniff: ordered candidate readers, best first
probeBytes(file.name, bytes);
// [{ format: "jcamp-dx", reader: "...", confidence: "definite", reason: "..." }]

// Decode: SpectralRecord[] (same JSON shape as `nirs4all-formats read-json`)
const records = openBytes(file.name, bytes);
```

`openBytes` / `probeBytes` 拿起文件 **名字** (几嗅探器 通过扩展名（加上字节）消除歧义。返回的记录与 [数据模型](https://npmcn.com/package/docs/DATA_MODEL.md)： `signals`， `signal_type`， `targets`， `metadata`， `provenance`， `quality_flags`.

### 双轮马车的格式

多文件格式（ENVI标准） `.img`+`.hdr`病毒/流感病毒/流感病毒 FGI XML+HDF5, NetCDF MFRSR)返回和 `UnsupportedSidecar` 错误的 `openBytes`． 提供同伴作为一个 `{ name: Uint8Array }` 地图:

```ts
const records = openWithSidecars("cube.img", imgBytes, { "cube.hdr": hdrBytes });
```

## 范围和特性标志

默认的WASM构建会编译 `fmt-hdf5`， `fmt-matlab`, `fmt-parquet` **在**． HDF5/ netcf支持的读卡器，MATLAB MAT/RData读卡器，和拼花桌 阅读器可以在浏览器中使用，包括snappy、未压缩和 压缩的拼花页面。呼叫 `features()` 查看活动包 运行时。

## 冒烟测试

```bash
node bindings/wasm/tests/smoke.js
node bindings/wasm/tests/sidecars.test.js
node bindings/wasm/tests/fixture_matrix.js
```

`smoke.js` 加载提交的fixture （CSV, JCAMP-DX， ASD二进制文件，非数据PDF） 并将每个探测路由断言到预期的阅读器； `sidecars.test.js` 练习 `openWithSidecars`. `fixture_matrix.js` 打开更广泛的已提交文件集 单文件和挎斗夹具通过WASM包，检查预期 非近红外/拒绝路径，并将练习的读者与 `readerCatalog()`． 提交矩阵涵盖了除 同素异形体ADF，其样本仅限本地/不可再分配；看到 `samples/allotrope_adf/README.md`.

## 常见问题

### @nirs4all/formats-wasm 是什么？

用于nirs4all格式的WebAssembly绑定。

### 如何安装 @nirs4all/formats-wasm？

在项目目录运行 npm install @nirs4all/formats-wasm，或使用 pnpm add / yarn add / bun add。

### @nirs4all/formats-wasm 支持 TypeScript 吗？

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

### @nirs4all/formats-wasm 支持 ESM 还是 CommonJS？

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

### @nirs4all/formats-wasm 可以商用吗？

@nirs4all/formats-wasm 使用 CECILL-2\.1 OR AGPL-3\.0-or-later 许可。可在 CECILL-2\.1、AGPL-3\.0 中任选其一遵守。以上为概括，不构成法律意见，请以许可原文为准。

### @nirs4all/formats-wasm 还在维护吗？

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

