PostgreSQLをWebブラウザ上で動かす「Postgre-WASM」、オープンソースで公開。Webブラウザ上のx86仮想マシンで実行、レプリケーションも可能
今回は「PostgreSQLをWebブラウザ上で動かす「Postgre-WASM」、オープンソースで公開。Webブラウザ上のx86仮想マシンで実行、レプリケーションも可能」についてご紹介します。
関連ワード (仮想、公開、開発環境等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
WebAssemblyを用いてWebブラウザにx86の仮想マシンを構成することで、PostgreSQLをWebブラウザ上で実行可能にした「Postgre-WASM」がオープンソースで公開されました。
Today we're open sourcing postgres-wasm with our friends at @_snaplet
Discover how we built it, and the extra features we've added: https://t.co/6kmfXBBhCS#postgres #wasm #opensource
— Supabase (@supabase) October 3, 2022
WebAssemblyを用いてWebブラウザに対応させたPostgreSQLとしては、2カ月前の8月に、Webブラウザ上でPostgreSQLを動かしながら、基本の操作から性能分析などさまざまな機能を学べる「Postgres playground」が公開されています。
参考:WebAssembly化したPostgreSQLをWebブラウザ上で実際に動かして学ぶ「Postgres playground」をCrunchy Dataが公開
しかしこのPostgres playgroundはオープンソースとして公開されていませんでした。
これに触発されて、オープンソース化したWebAssembly版のPostgreSQLの開発に取り組んだSupabaseとSnapletが今回のPostgres-WASMを公開しました。
Webブラウザで起動、SQL文など実行可能
Postgres-WASMはこのリンク「wasm.supabase.com」をクリックすることで、すぐに試すことができます。このとき30MB程度のファイルがダウンロードされます。
プロンプトが表示されれば、すでにPostgreSQLがWebブラウザ上で起動しているので、例えば次のようなSQL文を入力して実行することができます。
Postgres-WASMのベースになっているのはPostgres 14.5。ファイルやIndexDBに状態を保存、取得可能で、メモリは128MBから1024MBの間で構成可能など。
また他のPostgreSQLとのレプリケーションも可能になっているとのこと。
WebAssemblyでx86仮想マシンを動かし、その上でPostgreSQLを実行
Postgres-WASMはPostgreSQLをWebAssemblyしたのではなく、WebAssebmlyでx86エミュレータを実装した「v86」を利用し、その上でストリップダウンしたLinuxとPostgreSQLを備えた仮想マシンをロードして実行する手法を用いたと説明されています。
そのため、Postgres-WASMはチュートリアルやデモだけでなく、PostgreSQLを用いた開発環境、オフラインでのデータ分析など、さまざまな用途が想定できそうです。