瓦克丽特
这是 SQLite 的 Web Assembly 构建,支持将 SQLite 虚拟文件系统完全用 Javascript 写入 。 这允许其他浏览器存储选项,如索引DB和Origin Private File System. 应用程序可以选择使用同步或同步(使用Asyncify或JSPI)SQLite库构建(同步扩展需要同步构建).
IndexedDB和几个Origin Privative File System虚拟文件系统是作为概念证明提供的例子之一. 比较不同VFS类的表格是 这里。 。 。 .
尝试演示 运行 基准 有现代桌面网页浏览器。 更多信息可在以下网站获取: 财务问题, (中文(简体) ), 讨论论坛,以及 API 参考。 。 。 .
构建
这个项目的主要动机是允许只使用Javascript的 SQLite 添加. 大多数开发者应当能够使用预建的文物 ./dist 语句。 。 。 . 请注意,项目较早的版本仅提供了预建文物 "无建"分行;该分行将不再保留.
小型构建定制(例如更改构建定义或旗帜)可以使用 提出参数帮助项目 斯克瓦布语name 可用于没有本地建设环境的建设.
如果你真的想建设自己,这里的前提条件是:
- 基于Debian Linux已知可行,与其他平台的相容性未知.
yarn- 如果使用不同的软件包管理器(例如:.npm然后演示中的文件路径需要调整 .- 标记 SDK 3.1.61+ (中文(简体) ).
curl, (中文(简体) ),make, (中文(简体) ),openssl, (中文(简体) ),sed, (中文(简体) ),tclsh, (中文(简体) ),unzip
以下是建设步骤:
- 确保
emcc工作时. git clone [email protected]:rhashimoto/wa-sqlite.gitcd wa-sqliteyarn installmake
默认构建生成 ES6 模块 + WASM, 同步和同步 (使用Asyncify和JSPI) 输入 dist/。 。 。 .
API 密码
提供了核心SQLITE C API功能的Javascript包装符(和其他一些). 还提供了一些便利功能来减少锅炉板. 以下是装入库并拨打API的样本代码:
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();
有一个比较复杂的例子 这里 也显示如何使用虚拟文件系统进行持续存储.
这个 执行情况 sqlite3.exec 任何希望更精细地使用 SQLite 语句对象的人可能感兴趣(如绑定参数,明列数据类型等).
演示
要从源树直接为演示服务:
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日起 车队设备管理 财务报告和审定财务报表 反映。 。 。 . 现有被许可人可以继续使用GPLv3或换入新许可.