一款在浏览器中运行的Postgres数据库——PGlite

公众号:【可乐前端】,每天3分钟学习一个优秀的开源项目,分享web面试与实战知识。

每天3分钟开源

hi,这里是每天3分钟开源,很高兴又跟大家见面了,今天介绍的开源项目简介如下:

仓库名:electric-sql/pglite

项目名:pglite

开源地址:https://github.com/electric-sql/pglite

主要语言: TypeScript

stars数量:2440

forks数量:43

开源协议:暂无

一句话介绍

这是一个名为 PGlite 的项目,能够使你在浏览器、 Node.jsBun 中运行 Postgres ,无需安装其他依赖项。

项目截图

详细描述

PGlite 的文件大小仅为3.7mb(gzip格式)。它既可以用作临时的内存数据库,也可以持久化到文件系统(Node/BunindexedDB (浏览器)。

与以往的“在浏览器中运行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 来运行文件。

如何构建

自定义构建可以通过如下步骤进行:

之后分别运行以下命令行:

git submodule update --init
cd ./pglite/packages/pglite
emsdk install 3.1.25
emsdk activate 3.1.25
pnpm install
pnpm build

最后

感谢您的阅读,这里每天都会推送优秀的开源项目,如果觉得有帮助的话,一键三连一下吧~

  • 18
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值