rxdb-adapter-sqlite-wasm
RxDB SQLite 适配器,基于 @subframe7536/sqlite-wasm。
与 @aiao/rxdb-adapter-wa-sqlite 共享 @aiao/rxdb-adapter-sqlite-core 中的核心能力;差异在于底层 SQLite WASM 由 subframe 包提供(自定义 wa-sqlite,支持 FTS5 / UPDATE DELETE LIMIT,内置 typesafe VFS 预设)。
何时使用
- 需要 subframe 提供的增强 SQLite 特性(UPDATE/DELETE LIMIT)
- 需要类型安全的 VFS 预设
- 需要更灵活的 VFS 选择(包括 OPFS FileHandle)
与其他 SQLite 适配器对比
| 特性 | sqlite-wasm | wa-sqlite | sqlite-wasm (官方) |
|---|---|---|---|
| 底层库 | @subframe7536/sqlite-wasm | wa-sqlite | @sqlite.org/sqlite-wasm |
| UPDATE/DELETE LIMIT | ✅ | ❌ | ❌ |
| VFS 预设 | 类型安全 | 手动配置 | 手动配置 |
| OPFS FileHandle | ✅ | ❌ | ✅ |
| 包大小 | ~800KB | ~500KB | ~1MB |
支持的存储(VFS 预设)
vfs 取值 | 说明 | 运行环境 |
|---|---|---|
memory | 纯内存,MemoryVFS | 主线程/Worker |
idb | IndexedDB,IDBBatchAtomicVFS | 主线程/Worker |
idb-memory | 内存 + IndexedDB 镜像,IDBMirrorVFS | 主线程/Worker |
opfs | OPFS,OPFSCoopSyncVFS | 必须 Worker |
fs-handle | 本地文件/OPFS FileHandle,OPFSAnyContextVFS | 主线程/Worker |
安装
npm install @aiao/rxdb @aiao/rxdb-adapter-sqlite-wasm
# 或
pnpm add @aiao/rxdb @aiao/rxdb-adapter-sqlite-wasm
用法
import { RxDB, SyncType } from '@aiao/rxdb';
import { RxDBAdapterSqlite } from '@aiao/rxdb-adapter-sqlite-wasm';
const rxdb = new RxDB({
dbName: 'my-app',
entities: [/* 实体类 */],
sync: {
local: { adapter: 'sqlite-wasm' },
type: SyncType.None
}
});
rxdb.adapter('sqlite-wasm', async db => new RxDBAdapterSqlite(db, { vfs: 'idb' }));
await rxdb.connect('sqlite-wasm');
在 Worker 中运行(opfs VFS 必须 Worker):
// sqlite-wasm.worker.ts
import { SqliteClient } from '@aiao/rxdb-adapter-sqlite-wasm';
import { expose } from 'comlink';
expose(new SqliteClient());
// 主线程:worker / workerInstance 必须成对提供,缺一即抛错
rxdb.adapter(
'sqlite-wasm',
async db =>
new RxDBAdapterSqlite(db, {
vfs: 'opfs',
worker: true,
workerInstance: new Worker(new URL('./sqlite-wasm.worker', import.meta.url), { type: 'module' })
})
);
完整示例
参考 dev-rxdb-angular 中的集成示例。
Classes
| Class | Description |
|---|---|
| RxDBAdapterSqlite | Backend-agnostic base class for SQLite adapters. |
| RxDBAdapterSqliteError | RxDB SQLite 适配器错误类 |
| SqliteClient | 类型安全的同步事件调度器。 |
| SqliteRepository | 操作 entity 仓库 |
Interfaces
| Interface | Description |
|---|---|
| GenerateSqlResult | - |
| RxDBAdapterSqliteBase | Backend-agnostic base class for SQLite adapters. |
| SqliteOptions | SQLite 适配器配置接口 |
Type Aliases
| Type Alias | Description |
|---|---|
| SupportVFS | 支持的 @subframe7536/sqlite-wasm 存储预设 |
Variables
| Variable | Description |
|---|---|
| buildRuleGroup | 生成 ruleGroup sql 查询条件 |
| ROWID | sqlite 行 id 列名 |
| SQLITE_WASM_VFS_LIST | - |
| sqliteGetTableName | 获取表名 |
| sqliteGetTableNameByMetadata | 通过元数据获取表名 |
Functions
| Function | Description |
|---|---|
| createSqliteClient | - |
| sqliteLoad | 加载并初始化 @subframe7536/sqlite-wasm |