跳到主要内容

rxdb-adapter-wa-sqlite

RxDB 适配器,使用 wa-sqlite 在浏览器中运行 SQLite。

功能特性

  • 本地优先: 在浏览器中通过 WebAssembly 运行完整 SQLite
  • 零服务器: 无需后端服务器,数据存储在本地
  • SQLite 兼容: 支持标准 SQLite 语法和功能
  • 响应式: 数据变化自动触发更新
  • 高性能: 使用 Web Worker 避免阻塞主线程

何时使用

  • 需要轻量级本地数据库(WASM 体积小)
  • 需要 SQLite 生态兼容性
  • 需要 FTS5 全文搜索
  • 对启动速度和内存占用敏感的应用

与其他适配器对比

特性wa-sqlitesqlite-wasmPGlite
数据库引擎SQLiteSQLitePostgreSQL
WASM 大小~500KB~800KB~3MB
全文搜索FTS5FTS5tsvector
VFS 选项多种(IDB/OPFS)标准固定
成熟度官方支持较新

安装

npm install @aiao/rxdb @aiao/rxdb-adapter-wa-sqlite
# 或
pnpm add @aiao/rxdb @aiao/rxdb-adapter-wa-sqlite

使用

import { createRxdb } from '@aiao/rxdb';
import { createWaSqliteAdapter } from '@aiao/rxdb-adapter-wa-sqlite';

const db = await createRxdb({
adapter: createWaSqliteAdapter({
vfs: 'IDBBatchAtomicVFS',
wasmPath: '/wa-sqlite/wa-sqlite-async.wasm'
})
});

VFS 选项

wa-sqlite 支持多种虚拟文件系统(VFS):

  • IDBBatchAtomicVFS: IndexedDB 后端,批量原子写入,推荐用于生产
  • OPFSCoopSyncVFS: Origin Private File System,需要 SharedArrayBuffer 支持
  • MemoryVFS: 纯内存存储,适合测试

完整示例

参考 dev-rxdb-angular 中的集成示例。

Classes

ClassDescription
RxDBAdapterSqliteBackend-agnostic base class for SQLite adapters.
RxDBAdapterSqliteErrorRxDB SQLite 适配器错误类
SqliteClient事件调度器 提供类型安全的事件添加、移除和分发功能
SqliteRepository操作 entity 仓库

Interfaces

InterfaceDescription
GenerateSqlResult-
RxDBAdapterSqliteBaseBackend-agnostic base class for SQLite adapters.
SqliteOptionsSQLite 适配器配置接口

Type Aliases

Type AliasDescription
SqliteRepositoryConstructorSQLite 仓库构造函数类型

Variables

VariableDescription
buildRuleGroup生成 ruleGroup sql 查询条件
ROWIDsqlite 行 id 列名
sqliteGetTableName获取表名
sqliteGetTableNameByMetadata通过元数据获取表名
WA_SQLITE_VFS_LIST-

Functions

FunctionDescription
sqliteLoad加载并初始化 wa-sqlite

References

RxDBAdapterWaSqlite

Renames and re-exports RxDBAdapterSqlite


WaSqliteClient

Renames and re-exports SqliteClient


waSqliteLoad

Renames and re-exports sqliteLoad


WaSqliteOptions

Renames and re-exports SqliteOptions


WaSqliteRepositoryConstructor

Renames and re-exports SqliteRepositoryConstructor