SQLite は、Web ブラウザで DBMS を使用するための WASM サポートを追加します

SQLite 開発者は、ライブラリを中間 WebAssembly コードにコンパイルする機能を実装するプロジェクトを開発しています。このコードは、Web ブラウザーで実行でき、JavaScript 言語の Web アプリケーションからデータベースの操作を整理するのに適しています。 WebAssembly サポートのコードがメイン プロジェクト リポジトリに追加されました。 SQLite に基づく WebSQL API とは異なり、WASM SQLite はブラウザから完全に分離されており、そのセキュリティには影響しません (WebSQL を通じてブラウザを攻撃するために悪用される可能性のある SQLite のいくつかの脆弱性を受けて、Google は Chrome での WebSQL のサポートを終了することを決定しました) )。

プロジェクトの目標は、SQLite API と機能的に同一の、実際に動作する JavaScript バインディングを提供することです。 Web 開発者には、sql.js または Node.js のスタイルでデータを操作するための高レベルのオブジェクト指向インターフェイスが提供され、低レベルの C API をラップオーバーし、Web ワーカー メカニズムに基づく API を使用して、別のスレッドで実行される非同期ハンドラーを作成します。 Web Worker ベースの API 上でスレッドを使用して作業を整理する複雑さを隠すために、Promise メカニズムに基づいたプログラミング インターフェイスのバリアントも開発されています。

Web アプリケーションが SQLite の WASM バージョンに保存するデータは、現在のセッション内でローカライズすることも (ページのリロード後に失われる)、クライアント側で永続化することもできます (セッション間で永続化する)。 永続ストレージの場合、OPFS (Origin-Private FileSystem、ファイル システム アクセス API の拡張機能、これまでのところ WebKit および Chromium ベースのブラウザでのみ利用可能) を使用してローカル ファイル システムとローカル ブラウザ ストレージにデータを配置するためのバックエンドが準備されています。 window.localStorage API と window.sessionStorage に基づいています。 localStorage/sessionStorage を使用する場合、データは適切なキー/値ストアにマップされますが、OPFS を使用する場合は 3 つのオプションがあります。WASMFS を使用して仮想ファイル システムをシミュレートする方法と、OPFS ベースの SQLite VFS レイヤーを提供する別個の sqliteXNUMX_vfs 実装です。 。

SQLite を WASM 表現に構築するには、Emscripten コンパイラが使用されます (ext/wasm 拡張子: "./configure --enable-all; make sqlite3.c; cd ext/wasm; make" を構築するだけで十分です)。 出力は、JavaScript プロジェクト (HTML および JavaScript の例) に含めることができる sqlite3.js および sqlite3.wasm ファイルです。

出所: オープンネット.ru

コメントを追加します