公众号:【可乐前端】,每天3分钟学习一个优秀的开源项目,分享web面试与实战知识。
每天3分钟开源
hi,这里是每天3分钟开源,很高兴又跟大家见面了,今天介绍的开源项目简介如下:
仓库名:
electric-sql/pglite
项目名:
pglite
开源地址:https://github.com/electric-sql/pglite
主要语言:
TypeScript
stars数量:
2440
forks数量:
43
开源协议:
暂无
一句话介绍
这是一个名为 PGlite
的项目,能够使你在浏览器、 Node.js
和 Bun
中运行 Postgres
,无需安装其他依赖项。
详细描述
PGlite
的文件大小仅为3.7mb
(gzip格式)。它既可以用作临时的内存数据库,也可以持久化到文件系统(Node/Bun
或 indexedDB
(浏览器)。
与以往的“在浏览器中运行Postgres的项目”不同, PGlite
并没有使用 Linux
虚拟机,而是直接将 Postgres
运行在 WASM
中。
用途
Node/Bun
用于你的项目中,先进行安装:
npm install @electric-sql/pglite
纯内存数据库的使用:
import { PGlite } from "@electric-sql/pglite"
const db = new PGlite()
await db.query("select 'Hello world' as message;")
// -> [ { message: "Hello world" } ]
或者将其持久化到文件系统:
const db = new PGlite('./path/to/pgdata')
浏览器
它可以通过 JSDeliver
或常用的CDN
加载。在内存中运行 Postgres
:
<script type="module">
import { PGlite } from "https://cdn.jsdelivr.net/npm/@electric-sql/pglite/dist/index.js";
const db = new PGlite()
await db.query("select 'Hello world' as message;")
// -> [ { message: "Hello world" } ]
</script>
或者将数据库持久化到 indexedDB
:
const db = new PGlite('idb://my-pgdata')
Deno
在内存中运行 Postgres
,可以创建一个名为server.ts
的文件:
import { PGlite } from "npm:@electric-sql/pglite"
Deno.serve(async (_request: Request) => {
const db = new PGlite()
const query = await db.query("select 'Hello world' as message;")
return new Response(JSON.stringify(query))
})
然后,执行命令 deno run --allow-net --allow-read server.ts
来运行文件。
如何构建
自定义构建可以通过如下步骤进行:
- 下载安装Postgres构建工具链Postgres build toolchain
- 下载安装emscripten版本3.1.25版本emscripten 3.1.25
之后分别运行以下命令行:
git submodule update --init
cd ./pglite/packages/pglite
emsdk install 3.1.25
emsdk activate 3.1.25
pnpm install
pnpm build
最后
感谢您的阅读,这里每天都会推送优秀的开源项目,如果觉得有帮助的话,一键三连一下吧~