WebAssembyとしてPostgreSQLをビルドした「PGlite」公開。Node.jsやブラウザ上でPostgreSQLを実行、DBの永続化も可能
今回は「WebAssembyとしてPostgreSQLをビルドした「PGlite」公開。Node.jsやブラウザ上でPostgreSQLを実行、DBの永続化も可能」についてご紹介します。
関連ワード (出力、拡張機能、破棄等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
PostgreSQLのソースコードをWebAssemblyバイナリとしてビルドしたことで、Node.jsなどのJavaScriptランタイムやWebブラウザ上で(ほぼ)フル機能のPostgreSQLを実行可能にした「PGlite」が公開されました。
PGliteはPostgreSQLのCのソースをEmscriptenでコンパイル
PostgreSQLはオープンソースの代表的なリレーショナルデータベースであり、C言語で開発されています。
PGliteはこのPostgreSQLのCのソースコードのビルドにEmscriptenコンパイラを使用してWebAssemblyバイナリとして出力、JavaScript/TypeScriptからライブラリとして呼び出せるようにしたものです。
ただしEmscriptenでコンパイルされたプログラムは新しいプロセスをフォークできないため、PGliteはPostgreSQLのシングルユーザーモードを利用していると説明されています。
Node.js、Bun、そしてWebブラウザ上で実行可能
PGliteは依存するライブラリなどを追加インストールする必要はなく、単独でNode.js、Bun、そしてWebブラウザ上で実行可能です。ファイルサイズはGzip圧縮で3MB以下。
インメモリ上にその場限りとなるデータベースを作成できるだけでなく、Node.jsとBunではファイルアクセスAPIを利用して、WebブラウザではIndexedDBを利用して永続的なデータベースを作成できます。
また、PostgreSQLでベクトルデータの扱いを可能にする拡張機能である「pgvector」を始めとする多数のPostgreSQLの拡張機能にも対応するとのことです。
PGliteはJavaScript/WebAssemblyランタイム上で実行と破棄が簡単に行えることから、ローカル開発環境で利用するデータベースとしての利用、Webアプリケーションや小型デバイスなどへの組み込み、テスト環境やCI/CD環境などでの利用などが想定されています。
PGliteをブラウザですぐ試せる「postgres.new」
PGliteを開発したのはElectricSQL社ですが、PostgreSQLをベースにしたBaaS(Backend as a Service)の「Spabase」を開発し提供しているSpabase社が、PGLiteをすぐにWebブラウザで試せる「postgres.new」を発表しています。
Launch Week Day 1 Announcement:
https://t.co/EwDeIl601U
Spin up an unlimited number of Postgres databases
Directly in the browser
Let AI build your schema pic.twitter.com/RDzoV4ioLo— Supabase (@supabase) August 12, 2024