WebAssemblyとしてPostgreSQLをビルドした「PGlite」公開。Node.jsやブラウザ上でPostgreSQLを実行、DBの永続化も可能
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)の「Supabase」を開発し提供しているSupabase社が、PGLiteをすぐにWebブラウザで試せる「postgres.new」を発表しています。
Launch Week Day 1 Announcement:
— Supabase (@supabase) August 12, 2024
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
関連記事
あわせて読みたい
GitHub、全サービスがデータベースの設定変更ミスでアクセス不能に。設定を元に戻して30分後に復旧
≪前の記事
コンテナランタイム「containerd 2.0」がまもなく登場。何が変わるのか?