PGlite 是一个轻量级的嵌入式 PostgreSQL 数据库,实现了基于 WebAssembly (WASM) 的 PostgreSQL 环境,允许开发者在浏览器、Node.js 和其他 JavaScript 运行环境中运行完整的 PostgreSQL 数据库,而无需完整的服务器安装。
PGlite 的主要特性和用法
轻量化和高效:PGlite 的压缩体积仅约 3MB,可作为会话内的临时内存数据库,支持浏览器中使用 indexedDB 进行数据持久化,也支持在 Node.js 中使用文件系统保存数据。
多环境支持:PGlite 可以在多种 JavaScript 运行时环境中使用,适合在网页或移动应用中构建“本地优先”的数据库功能,不依赖网络连接便可运行。
实时反应和数据同步:PGlite 集成了实时查询(Live Query)功能,适合需要实时更新的应用场景。
PGlite Github地址:https://github.com/electric-sql/pglite
PGlite 使用示例
要在浏览器中启动 PGlite,可以先安装或导入库:
import { PGlite } from "@electric-sql/pglite";
// 创建数据库实例
const db = new PGlite();
await db.query("SELECT 'Hello World' AS message;");
// -> 返回 { rows: [ { message: "Hello World" } ] }
如果需要将数据库持久化,可以指定 indexedDB 路径:
const db = new PGlite("idb://my-pgdata");
PGlite 还提供了交互式的 REPL 组件,支持在页面中嵌入一个命令行界面,方便在浏览器环境中进行测试和调试。