7z-wasm

中文文档
1.2.0发布于 2025/06/23SEE LICENSE IN License.txtTypeScriptESM + CJS近 30 天下载 22.5万

7-Zip for JavaScript environments, compiled to WASM

原始使用文档
文档目录5 节
  1. Usage
  2. Command-line
  3. As a module
  4. Working with the real file system (Node.JS only)
  5. Building

7-Zip WASM

7-Zip compiled to WASM with emscripten. Based on 7-Zip 24.09 (2024-11-29).

  • Runs in any JavaScript environment that supports WASM (Browser or NodeJS)
  • Supports all file formats that the full 7zz CLI supports.
  • Only Emscripten NODEFS and WORKERFS adapters are included by default.

Inspired by https://github.com/sonictruth/7zip.js

Usage

Command-line

npx 7z-wasm --help

or

npm i -g 7z-wasm
7z-wasm --help

As a module

import SevenZip from "7z-wasm";

const sevenZip = await SevenZip();

const archiveData = new Uint8Array(100);
const archiveName = "archive.7z";

const stream = sevenZip.FS.open(archiveName, "w+");
sevenZip.FS.write(stream, archiveData, 0, archiveData.length);
sevenZip.FS.close(stream);

const filesToExtract = ["some-file.txt"];
sevenZip.callMain(["x", archiveName, ...filesToExtract]);
console.log(sevenZip.FS.readFile(filesToExtract[0]));

Working with the real file system (Node.JS only)

import SevenZip from "7z-wasm";

const mountRoot = "/nodefs";
sevenZip.FS.mkdir(mountRoot);
sevenZip.FS.mount(sevenZip.NODEFS, { root: "/real/root/folder" }, mountRoot);
sevenZip.FS.chdir(mountRoot + "/subfolder");

sevenZip.callMain(["x", "archive.7z", "some-file.txt"]);

Building

Because the 7-Zip sources are not available on GitHub, the build process relies on downloading the sources from the 7-Zip website and patching them so they compile with emcc.

  • Install docker
  • Execute ./build (or .\build, respectively, on Windows CMD)

You can pass custom options to emcc via env file (e.g. see build-umd.env)

版本与发布记录

7z-wasm 共发布 11 个版本,首次发布于 2021/08/20;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.2.0latest2025/06/231.4 年前
1.1.02023/10/163 年前
1.0.22023/03/223 年前
1.0.12022/08/314 年前
1.0.02022/08/314 年前
1.0.0-beta.52021/09/125 年前

关于 7z-wasm 的常见问题

7z-wasm 是什么?

7-Zip for JavaScript environments, compiled to WASM

如何安装 7z-wasm?

在项目目录运行 npm install 7z-wasm,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 7z-wasm,可以用 npx 7z-wasm 直接运行。

7z-wasm 支持 TypeScript 吗?

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

7z-wasm 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

7z-wasm 需要什么版本的 Node.js?

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

7z-wasm 可以商用吗?

7z-wasm 使用 SEE LICENSE IN License.txt 许可。许可条款写在包内的独立文件中,请阅读该文件确认可否商用。以上为概括,不构成法律意见,请以许可原文为准。

7z-wasm 的下载量有多少?

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

7z-wasm 还在维护吗?

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