PGLite - ブラウザでPostgresを実行する
(github.com/electric-sql)- ブラウザ、Node.js、BunでPostgresを実行できるように、TypeScriptクライアントライブラリとしてパッケージ化されたWASM版Postgresビルド
- 他の依存関係はなく、gzip圧縮後で3.7Mb
- 一時的なインメモリデータベースとして使用することも、ファイルシステム(Node/Bun)やIndexedDB(ブラウザ)に永続的に保存して使用することも可能
- 既存のブラウザ上で動作するPostgresとは異なり、Linux仮想マシンを使わない"Postgres in WASM"
import { PGlite } from "@electric-sql/pglite"
const db = new PGlite()
await db.query("select 'Hello world' as message;")
// -> [ { message: "Hello world" } ]
3件のコメント
テストコードを書く際に便利に使っています。CIでテストしやすいです。
モバイルアプリでsqliteを使うように、リモートDBとの同期が不要なものを保存できそうですね。reduxのようなグローバル状態ストアを置き換えられそうですかね?!
わざわざフロント側でSQLクエリを覚えてまで置き換える必要があるのかとは思いますが、面白くはありますね。
pglite-reactパッケージも一緒に存在しているようです。