# @effect/wa-sqlite 中文文档

规范地址：https://npmcn.com/package/%40effect/wa-sqlite/

版本：0\.2\.1
npm 元数据更新时间：2026-09-18T21:17:46.218Z
中文译文更新时间：2026-11-13T08:28:55.735Z
软件包许可：未声明

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

原始 npm 页面：https://www.npmjs.com/package/%40effect/wa-sqlite
原文对照：https://npmcn.com/package/%40effect/wa-sqlite/?lang=original

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

- 包体积（解压后）：3.3 MB，57 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2024-11-14T15:11:06.524Z
- 最新版本发布：2025-08-26T23:49:22.519Z
- 近 30 天下载量：38800（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：5（近 12 个月 0 个）

## 中文简介

[![wa-sqlite CI](https://github.com/rhashimoto/wa-sqlite/actions/workflows/ci.yml/badge.svg)](https://github.com/rhashimoto/wa-sqlite/actions/workflows/ci.yml)

## 安装

```sh
npm install @effect/wa-sqlite
```

也可以使用：`pnpm add @effect/wa-sqlite`、`yarn add @effect/wa-sqlite`、`bun add @effect/wa-sqlite`

## README

[![wa-sqlite CI](https://github.com/rhashimoto/wa-sqlite/actions/workflows/ci.yml/badge.svg)](https://github.com/rhashimoto/wa-sqlite/actions/workflows/ci.yml)

# 瓦克丽特

这是 SQLite 的 Web Assembly 构建,支持将 SQLite 虚拟文件系统完全用 Javascript 写入 。 这允许其他浏览器存储选项,如索引DB和Origin Private File System. 应用程序可以选择使用同步或同步(使用Asyncify或JSPI)SQLite库构建(同步扩展需要同步构建).

IndexedDB和几个Origin Privative File System虚拟文件系统是作为概念证明提供的例子之一. 比较不同VFS类的表格是 [这里](https://github.com/rhashimoto/wa-sqlite/tree/master/src/examples#vfs-comparison)。 。 。 .

[尝试演示](https://rhashimoto.github.io/wa-sqlite/demo/?build=asyncify&config=IDBBatchAtomicVFS&reset) 运行 [基准](https://rhashimoto.github.io/wa-sqlite/demo/benchmarks/?config=asyncify,IDBBatchAtomicVFS;asyncify,IDBMirrorVFS;default,AccessHandlePoolVFS;default,OPFSCoopSyncVFS;asyncify,OPFSAdaptiveVFS;asyncify,OPFSPermutedVFS) 有现代桌面网页浏览器。 更多信息可在以下网站获取: [财务问题](https://github.com/rhashimoto/wa-sqlite/issues?q=is%3Aissue+label%3Afaq+), (中文(简体) ), [讨论论坛](https://github.com/rhashimoto/wa-sqlite/discussions),以及 [API 参考](https://rhashimoto.github.io/wa-sqlite/docs/)。 。 。 .

## 构建

这个项目的主要动机是允许只使用Javascript的 SQLite 添加. 大多数开发者应当能够使用预建的文物 [./dist 语句](https://github.com/rhashimoto/wa-sqlite/tree/master/dist)。 。 。 . 请注意,项目较早的版本仅提供了预建文物 "无建"分行;该分行将不再保留.

小型构建定制(例如更改构建定义或旗帜)可以使用 [提出参数](https://github.com/rhashimoto/wa-sqlite/discussions/128)帮助项目 [斯克瓦布语name](https://github.com/rhashimoto/sqwab) 可用于没有本地建设环境的建设.

如果你真的想建设自己,这里的前提条件是:

-   基于Debian Linux已知可行,与其他平台的相容性未知.
-   `yarn` - 如果使用不同的软件包管理器(例如:. `npm`然后演示中的文件路径需要调整 .
-   [标记 SDK](https://emscripten.org/docs/getting_started/downloads.html) 3.1.61+ (中文(简体) ).
-   `curl`, (中文(简体) ), `make`, (中文(简体) ), `openssl`, (中文(简体) ), `sed`, (中文(简体) ), `tclsh`, (中文(简体) ), `unzip`

以下是建设步骤:

-   确保 `emcc` 工作时.
-   `git clone git@github.com:rhashimoto/wa-sqlite.git`
-   `cd wa-sqlite`
-   `yarn install`
-   `make`

默认构建生成 ES6 模块 + WASM, [同步和同步](https://github.com/rhashimoto/wa-sqlite/issues/7) (使用Asyncify和JSPI) 输入 `dist/`。 。 。 .

## API 密码

提供了核心SQLITE C API功能的Javascript包装符(和其他一些). 还提供了一些便利功能来减少锅炉板. 以下是装入库并拨打API的样本代码:

```javascript
  import SQLiteESMFactory from 'wa-sqlite/dist/wa-sqlite.mjs';
  import * as SQLite from 'wa-sqlite';

  async function hello() {
    const module = await SQLiteESMFactory();
    const sqlite3 = SQLite.Factory(module);
    const db = await sqlite3.open_v2('myDB');
    await sqlite3.exec(db, `SELECT 'Hello, world!'`, (row, columns) => {
      console.log(row);
    });
    await sqlite3.close(db);
  }

  hello();
```

有一个比较复杂的例子 [这里](https://github.com/rhashimoto/wa-sqlite/tree/master/demo/hello) 也显示如何使用虚拟文件系统进行持续存储.

这个 [执行情况 `sqlite3.exec`](https://github.com/rhashimoto/wa-sqlite/blob/eb6e62584b2864d5029f51c6afe155d71ba0caa8/src/sqlite-api.js#L409-L418) 任何希望更精细地使用 SQLite 语句对象的人可能感兴趣(如绑定参数,明列数据类型等).

[API 参考](https://rhashimoto.github.io/wa-sqlite/docs/)

## 演示

要从源树直接为演示服务:

-   `yarn start`
-   在 http://localhost:8000/demo/?building=asyncify&config=IDBBatchAtomicVFS&reset上打开浏览器

演示页提供对多个VFS执行上的数据库的访问. 演示页 URL 上的查询参数可用于指定配置和初始状态 :

| 参数 | 目的 | 数值 | 默认 |
| --- | --- | --- | --- |
| 构建 | 标记构建类型 | 默认、 同步、 jspi | 默认 |
| 配置 | 选择 VFS | 内存VFS、内存AsyncVFS、IDBBatchAtomicVFS、IDBMirrorVFS、AccessHandlePoolVFS、OPFSAdaptiveVFS、OPFSAnyContextVFS、OPFSCoopSyncVFS、OPFSPermutedVFS | 使用 SQLite 内部内存 |
| 重设 | 清除持久性存储 |  |  |

为了方便,如果编辑器中选择了任何文本区域,则只执行该区域. 此外,编辑器内容在跨页面再装入时会使用浏览器localStorage恢复.

## 许可证

从2023年2月10日起 [车队设备管理](https://fleetdm.com/) 财务报告和审定财务报表 [反映](https://reflect.app/)。 。 。 . 现有被许可人可以继续使用GPLv3或换入新许可.

## 常见问题

### 如何安装 @effect/wa-sqlite？

在项目目录运行 npm install @effect/wa-sqlite，或使用 pnpm add / yarn add / bun add。

### @effect/wa-sqlite 支持 TypeScript 吗？

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

### @effect/wa-sqlite 支持 ESM 还是 CommonJS？

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

### @effect/wa-sqlite 可以商用吗？

@effect/wa-sqlite 使用 未声明 许可。package\.json 没有声明许可证。没有许可证的代码默认保留全部权利，商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括，不构成法律意见，请以许可原文为准。

### @effect/wa-sqlite 的下载量有多少？

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

### @effect/wa-sqlite 还在维护吗？

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

