SQLite3 WASM/JS、Origin Private File Systemを用いてChrome上の高速なローカルDBが機能するとGoogleが明らかに、廃止されたWeb SQLの代替として利用可能
Google Chromeの開発チームは昨年(2022年)9月に、非推奨となったWeb標準のWeb SQL Database API(以下Web SQL)をChromeから削除、その代替機能としてSQLite開発チームと協力してWebAssembly版のSQLiteを開発し、提供する予定であることを明らかにしていました。
参考:Chrome開発チームがSQLiteチームとWebAssembly版SQLiteを開発中。Webブラウザ上からのファイル書き込みで永続化も可能。Web SQL APIの代替として
Web SQLはWebアプリケーションがSQLを通じてローカルなリレーショナルデータベースを操作できるAPIとして作られましたが、現実にはさまざまな理由で活用されることはほとんどなく、現在ではIndexedDBなどほかの機能を利用することが推奨されています。
SQLite3 WASM/JSパブリックベータ登場
この発表の翌月、2022年10月にはSQLiteの開発チームがWebAssembly版SQLite3をサブプロジェクトとして正式にローンチします。
参考:SQLiteの正式なWebAssembly版「SQLite3 WASM/JS」が登場
そして早くも2022年11月にはSQLite3 WASM/JSがパブリックベータとしてリリースされました。
参考:「SQLite3 WASM/JS」パブリックベータ公開。SQLite 3.40でサポート開始、WebブラウザなどでSQLiteが実行可能に
現時点でもこのSQLite3 WASM/JSパブリックベータが最新版となっています。
Origin Private File Systemで高速なデータアクセスを実現
このSQLite3 WASM/JSと、Chromeに実装されているOrigin Private File Systemを用いることで、Chrome上でローカルファイルに動作する高速なリレーショナルデータベースとして動作させる方法をGoogleが紹介しています。
The official SQLite Wasm port, backed by the Origin Private File System for maximum performance:https://t.co/05mEgOmcjQ
— Chrome Developers (@ChromiumDev) January 11, 2023
Check out @tomayac's article and demo for all details!
(This is our replacement for the deprecated Web SQL, but it's interesting for all SQLite users.)
Origin Private File SystemはFile System Access APIの一部で、ざっくり言えばWebブラウザがWebサイトごとに仮想のファイルシステムを持つことができるAPIです。
現実にはWebブラウザを実行しているローカルマシンのファイルシステム上に仮想のファイルシステムを実装しています。
その上でOrigin Private File Systemは、ファイルの内容に対して場所を指定した書き込み、排他的書き込み、フラッシュなし変更による読み取り一貫性など、さらにファイルの内容への高速なアクセスを可能にしています。
SQLite3 WASM/JSとOrigin Private File Systemを用いることで、ローカルへの永続的にデータ書き込みと、高速なデータベースアクセスを実装できると説明されています。
Googleのブログ「SQLite Wasm in the browser backed by the Origin Private File System」では、このSQLite3 WASM/JSとOrigin Private File Systemについての詳しい解説、そして実際に動作するデモなどを詳しく紹介しています。
実際にSQLite3 WASM/JSをWebブラウザで試してみたい方は、ぜひご覧になってはいかがでしょうか。
あわせて読みたい
Docker Desktop 4.16登場。AWSをローカルエミュレーションするLocalStackなど拡張機能が正式版。AppleシリコンMacでx86/amd64版Linuxバイナリの実行がβ版に
≪前の記事
「State of JavaScript 2022」公開。利用率1位のフロントエンドライブラリはReact、レンダリングはNext.js、テストはJestなど、4万人のエンジニアが回答