立即体验
v0.1.11 已发布

前端的 SQL 数据库

TypeScript 原生构建,内存与磁盘双模式,支持完整 SQL 查询。
零运行时依赖,开箱即用。

📦 安装引入

多种方式,按需选择

📦

npm (Gitea Registry)

# 配置 registry npm config set @metona-team:registry https://git.metona.cn/api/packages/MetonaTeam/npm/ # 安装 npm install @metona-team/metona-sqlark
🌐

CDN / Browser UMD

<!-- 直接引用 dist 产物 --> <script src="metona-sqlark.min.js"></script> <script> const db = await window.MetonaSqlark.create({...}); // 或 window.MeSqlark(别名) </script>

ESM / TypeScript

import { MetonaSqlark, MeSqlark } from '@metona-team/metona-sqlark'; const db = await MetonaSqlark.create({ name: 'my-app', mode: 'hybrid', });
🔧

CommonJS

const { MetonaSqlark } = require('@metona-team/metona-sqlark'); (async () => { const db = await MetonaSqlark.create({...}); })();

为什么选择 MetonaSqlark

专为前端打造的数据库引擎

🧠

双模式存储

Memory(内存)保证极致速度,Disk(IndexedDB / OPFS)提供持久化。Hybrid 模式一键兼顾。

完整 SQL 支持

SELECT / INSERT / UPDATE / DELETE / JOIN / GROUP BY / HAVING / DISTINCT — 手写递归下降解析器。

🔗

Query Builder

链式 API,TypeScript 友好。.select().where().innerJoin().orderBy().limit() — 代码即查询。

🔒

事务支持

原子性操作,事务内任意步骤失败自动回滚。IndexedDB 引擎利用浏览器原生事务。

🧩

插件系统

14 种生命周期钩子,注册自定义插件。beforeQuery / afterInsert / beforeTransaction……

📦

零运行时依赖

纯 TypeScript 实现,不依赖任何第三方库。Tree-shakable,最小体积不到 10KB gzip。

5 行代码开始

像写 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();

数字说话

MetonaSqlark 的核心指标

235+
测试用例
78.9%
代码覆盖率
~10KB
gzip 体积
4
存储引擎