rxdb-adapter-sqliteai
@aiao/rxdb 的 sqliteai 存储适配器,为核心引擎提供基于 sqliteai 运行时的 SQLite 后端。
安装
pnpm add @aiao/rxdb @aiao/rxdb-adapter-sqliteai rxjs
用法
import { createSqliteClient, RxDBAdapterSqliteai, sqliteaiLoad } from '@aiao/rxdb-adapter-sqliteai';
RxDBAdapterSqliteai:接入@aiao/rxdb的适配器实现createSqliteClient/SqliteaiClient:sqliteai 客户端sqliteaiLoad:运行时加载- 类型:
SqliteaiOptions
适配器共享内核(表名解析、规则编译、基础 Repository)来自 @aiao/rxdb-adapter-sqlite-core。
备份与恢复
backup() / restore() / cleanupIncompleteRestore() 由 @aiao/rxdb-adapter-sqlite-core 提供,语义与错误码见那里。
| 配置 | 备份 / 恢复 |
|---|---|
不开 opfs | ✅ 内存库 |
opfs: true | ✅ OPFS,持久化 journal_mode 为 delete |
opfs: true, opfsFallback: 'memory' | ❌ unsupported_combination(opfsFallback):OPFS 打不开时静默落到内存,恢复目标不确定 |
内置的 vector 与 memory 扩展在每条新连接上建出自己的表(_sqliteai_vector、dbmem_* 及其 FTS5 影子表,部分带初始行)。
这些表连同初始行就是「空库」本来的样子:恢复只把恰好等于新建空库的目标当作空的,写进这些表的用户数据随归档往返。
在 Worker 里跑时,每次连接租用 Worker 的一条独立子端口:恢复用一条连接写库,之后的 connect() 在同一个 Worker 上再开一条。
同一个 workerInstance 同一时间只借给一条连接:第二条并发连接会抛 Worker transport already has an active SQLite client。
直接调用 createSqliteClient 时,先 await client.disconnect(),再调用 @aiao/rxdb-adapter-sqlite-core 导出的
releaseComlinkProxy(client) 归还子端口,之后才能在同一个 Worker 上重连;适配器已在 disconnect() 内自动完成这一步。
文档
- 仓库主页:https://github.com/aiao-io/rxdb
- 适配器与存储后端指南见项目文档站
License
Classes
| Class | Description |
|---|---|
| RxDBAdapterSqliteai | 基于 @sqliteai/sqlite-wasm 的 RxDB 本地存储适配器。 |
| RxDBAdapterSqliteError | RxDB SQLite 适配器错误类 |
| SqliteaiClient | SqliteAI 的 oo1 客户端实现。 |
| SqliteRepository | 操作实体仓库 |
Interfaces
| Interface | Description |
|---|---|
| GenerateSqlResult | SQL 生成结果:完整的 SQL 语句与可选的参数绑定。 |
| SqliteaiOptions | SqliteAI 适配器完整选项(含可选的自定义 Repository 注册表)。 |
Type Aliases
| Type Alias | Description |
|---|---|
| SqliteaiLoadOptions | sqliteaiLoad 接受的运行期选项子集(剥离 worker / repository 配置)。 |
| SqliteaiRepositoryConstructor | 自定义 Repository 类的构造器签名(用户可覆盖默认 Repository / TreeRepository)。 |
Variables
| Variable | Description |
|---|---|
| BATCH_TIMEOUT | 变更事件批处理超时档位(毫秒)。 越短延迟越低但 CPU 唤醒越频繁;越长越省电但 UI 响应延后。 - IMMEDIATE (0): 同步派发,仅在测试场景使用 - FAST (4): 约一帧内合并 - BALANCED (16): 默认值,约一帧(60fps) - POWER_SAVE (50): 移动端 / 后台场景 |
| buildRuleGroup | 生成 ruleGroup sql 查询条件 |
| ROWID | sqlite 行 id 列名 |
| sqliteGetTableName | 获取表名 |
| sqliteGetTableNameByMetadata | 通过元数据获取表名 |
Functions
| Function | Description |
|---|---|
| createSqliteClient | 创建 SqliteAI 客户端实例并完成初始化。 |
| sqliteaiLoad | 加载 SqliteAI WASM 模块(带模块级缓存)。 |