专为前端打造的数据库引擎
Memory(内存)保证极致速度,Disk(IndexedDB / OPFS)提供持久化。Hybrid 模式一键兼顾。
SELECT / INSERT / UPDATE / DELETE / JOIN / GROUP BY / HAVING / DISTINCT — 手写递归下降解析器。
链式 API,TypeScript 友好。.select().where().innerJoin().orderBy().limit() — 代码即查询。
原子性操作,事务内任意步骤失败自动回滚。IndexedDB 引擎利用浏览器原生事务。
14 种生命周期钩子,注册自定义插件。beforeQuery / afterInsert / beforeTransaction……
纯 TypeScript 实现,不依赖任何第三方库。Tree-shakable,最小体积不到 10KB gzip。
像写 SQL 一样操作前端数据
// 创建数据库 const db = await MetonaSqlark.create({ name: 'my-app', mode: 'hybrid' }); // 定义表结构 await db.defineTable('users', { id: { type: 'string', primaryKey: true }, name: { type: 'string', required: true }, age: { type: 'number' }, }); // SQL 查询 await db.query("INSERT INTO users VALUES ('1', 'Alice', 30)"); const rows = await db.query('SELECT * FROM users WHERE age > 18'); // 或者 Query Builder const rows2 = await db.table('users') .select().where({ age: { $gt: 18 } }) .orderBy('name').limit(10).execute();
metona-sqlark 的核心指标