Webブラウザ上のWASM版PostgreSQLをサーバとし、PostgreSQLクライアントから接続可能になる「dabase.build:Live Share」、Supabaseが発表
今回は「Webブラウザ上のWASM版PostgreSQLをサーバとし、PostgreSQLクライアントから接続可能になる「dabase.build:Live Share」、Supabaseが発表」についてご紹介します。
関連ワード (今年、作成、構築等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
PostgreSQLをベースにしたBaaS(Backend as a Service)の「Supabase」を開発し提供しているSupabase社は、Webブラウザ上で実行中のWebAssembly版PostgreSQLをサーバとし、別のマシンからPostgreSQLのクライアントで接続できる新機能「dabase.build:Live Share」を発表しました。
Supabaseは今年(2024年)8月、Webブラウザ上でWebAssembly版PostgreSQLの「PGLite」を実行するサービス「database.build」(旧称:Postgres.new)の提供を開始しました。
これによりWebブラウザがあれば簡単にPostgreSQLを実行できるだけでなく、生成AIの機能もWebブラウザ上に統合されているため、データベースに対する自然言語での質問をSQL文に変換して実行し、結果をグラフ化することや、PostgreSQL上でベクトルデータの扱いを可能にする拡張機能である「pgvector」を用いたクエリを試すこともできます。
参考:Wasm版PostgreSQLに生成AIを組み合わせた「Postgres.new」無料公開。自然言語でクエリ、エンベディングの作成、CSVからテーブル自動生成など
今回、このdatabase.buildの新機能として、Webブラウザ上で実行しているWebAssembly版PostgreSQLに対して、別のマシンのPostgreSQLクライアントから接続できる機能「dabase.build:Live Share」が追加されました。
psqlからWebブラウザ上のPostgreSQLサーバへ接続
下記はデモ動画から、実際にWebブラウザ上のPostgreSQLをサーバとし、別のマシンからPostgreSQLのクライアントであるpsqlを用いて接続したところです。
1行目にあるように、Webブラウザ上のPostgreSQLへの接続には、database.new上で生成される特別なURLを用いて接続します。
これはpsqlからdatabase.newのサーバ上にあるプロキシを経由してWebブラウザ上のPostgreSQLへ接続する仕組みを用いているためです。
下記のように、psqlからはTCPを用いてdatabase.newのサーバのプロキシに接続し、プロキシはそれをWebSocketに変換してWebブラウザ上のPostgreSQLへ接続することで、psqlからWebブラウザ上のPostgreSQLへの接続を実現しています。
この仕組みによってさまざまなPostgreSQLクライアントやORMツール、開発ツールなどをWebブラウザ上のPostgreSQLに接続できます。
ただしWebAssembly版PostgreSQLはシングルユーザーモードでコンパイルされているため、ORMツールのPrismaのように複数のコネクションを張るようなクライアントツールは正常に動作しない制限があると説明されています。
このdatabase.buildのサービスを構成するフレームワークである「database-build」、WebAssembly版PostgreSQLの「PGlite」、プロキシとなる「pg-gateway」はいずれもオープンソースとして公開されているため、ユーザー自身でも同様の仕組みを構築することができるようになっています。