PostgreSQLをWebブラウザ上で動かす「Postgres-WASM」、オープンソースで公開。Webブラウザ上のx86仮想マシンで実行、レプリケーションも可能
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を公開しました。
Webブラウザで起動、SQL文など実行可能
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とのレプリケーションも可能になっているとのこと。
WebAssemblyでx86仮想マシンを動かし、その上でPostgreSQLを実行
Postgres-WASMはPostgreSQLをWebAssemblyしたのではなく、WebAssebmlyでx86エミュレータを実装した「v86」を利用し、その上でストリップダウンしたLinuxとPostgreSQLを備えた仮想マシンをロードして実行する手法を用いたと説明されています。
そのため、Postgres-WASMはチュートリアルやデモだけでなく、PostgreSQLを用いた開発環境、オフラインでのデータ分析など、さまざまな用途が想定できそうです。
(2022/10/5 11:00 タイトルと本文の一部で製品名を間違っておりました。お詫びして訂正いたします)
あわせて読みたい
GitHubのプロファイルでタイムゾーンの設定が可能に。他のユーザーにローカルの現在時刻を表示
≪前の記事
5年ぶりの本格的なメジャーバージョンアップ「Jakarta EE 10」正式リリース、クラウドネイティブなど対応