WebAssemblyを用いてWebブラウザにx86の仮想マシンを構成することで、PostgreSQLをWebブラウザ上で実行可能にした「Postgres-WASM」がオープンソースで公開されました。
Today we're open sourcing postgres-wasm with our friends at@_snaplet
— Supabase (@supabase)October 3, 2022
Discover how we built it, and the extra features we've added:https://t.co/6kmfXBBhCS#postgres#wasm#opensource
WebAssemblyを用いてWebブラウザに対応させたPostgreSQLとしては、2カ月前の8月に、Webブラウザ上でPostgreSQLを動かしながら、基本の操作から性能分析などさまざまな機能を学べる「Postgres playground」が公開されています。
参考:WebAssembly化したPostgreSQLをWebブラウザ上で実際に動かして学ぶ「Postgres playground」をCrunchy Dataが公開
しかしこのPostgres playgroundはオープンソースとして公開されていませんでした。
これに触発されて、オープンソース化したWebAssembly版のPostgreSQLの開発に取り組んだSupabaseとSnapletが今回のPostgres-WASMを公開しました。
Postgres-WASMはこのリンク「wasm.supabase.com」をクリックすることで、すぐに試すことができます。このとき30MB程度のファイルがダウンロードされます。

プロンプトが表示されれば、すでにPostgreSQLがWebブラウザ上で起動しているので、例えば次のようなSQL文を入力して実行することができます。
create table people (id serial primary key, name text);insert into people (name) values ('Adam'), ('Betty'), ('Charles'), ('Doris'), ('Eddy');select * from people;Postgres-WASMのベースになっているのはPostgres 14.5。ファイルやIndexDBに状態を保存、取得可能で、メモリは128MBから1024MBの間で構成可能など。
また他のPostgreSQLとのレプリケーションも可能になっているとのこと。
Postgres-WASMはPostgreSQLをWebAssemblyしたのではなく、WebAssebmlyでx86エミュレータを実装した「v86」を利用し、その上でストリップダウンしたLinuxとPostgreSQLを備えた仮想マシンをロードして実行する手法を用いたと説明されています。
そのため、Postgres-WASMはチュートリアルやデモだけでなく、PostgreSQLを用いた開発環境、オフラインでのデータ分析など、さまざまな用途が想定できそうです。
(2022/10/5 11:00 タイトルと本文の一部で製品名を間違っておりました。お詫びして訂正いたします)
クラウド
AWS /Azure /Google Cloud
クラウドネイティブ /サーバレス
クラウドのシェア /クラウドの障害
プログラミング言語
JavaScript /Java /.NET
WebAssembly /Web標準
開発ツール /テスト・品質

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
(詳しいプロフィール)
Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで :Feed