SQLite přidává podporu WASM pro použití DBMS ve webovém prohlížeči

Vývojáři SQLite vyvíjejí projekt implementace schopnosti zkompilovat knihovnu do mezikódu WebAssembly, schopného běhu ve webovém prohlížeči a vhodného pro organizaci práce s databází z webových aplikací v JavaScriptu. Do hlavního úložiště projektu byl přidán kód pro podporu WebAssembly. Na rozdíl od WebSQL API, které je založeno na SQLite, je WASM SQLite zcela izolován od prohlížeče a neovlivňuje jeho bezpečnost (Google se rozhodl ukončit podporu WebSQL v Chrome poté, co bylo možné několik zranitelností v SQLite zneužít prostřednictvím WebSQL k útoku na prohlížeč) .

Cílem projektu je poskytnout fungující JavaScript framework, který je funkčně shodný s SQLite API. Weboví vývojáři mají k dispozici objektově orientované rozhraní na vysoké úrovni pro práci s daty ve stylu sql.js nebo Node.js, vazbu přes nízkoúrovňové C API a API založené na mechanismu Web Worker, které umožňuje můžete vytvořit asynchronní obslužné rutiny spouštěné v samostatných vláknech. Aby se skryly složitosti organizace práce se streamy nad rozhraním Web Worker API, vyvíjí se také verze programového rozhraní založená na mechanismu Promise.

Data, která webové aplikace ukládají ve verzi WASM SQLite, lze lokalizovat v rámci aktuální relace (ztratí se po opětovném načtení stránky) nebo uložit na straně klienta (uložit mezi relacemi). Pro trvalé úložiště byly připraveny backendy pro umístění dat do lokálního souborového systému pomocí OPFS (Origin-Private FileSystem, rozšíření File System Access API, v současnosti dostupné pouze v prohlížečích založených na WebKit a Chromium) a na lokálním úložišti prohlížeče. na window.localStorage API a window.sessionStorage. Při použití localStorage/sessionStorage se data projeví v odpovídajících úložištích ve formátu klíč/hodnota a při použití OPFS existují dvě možnosti: simulace virtuálního FS pomocí WASMFS a samostatná implementace sqlite3_vfs, která nabízí vrstvu založenou na SQLite VFS na OPFS.

Pro zabudování SQLite do pohledu WASM se používá kompilátor Emscripten (stačí sestavit rozšíření ext/wasm: „./configure —enable-all; make sqlite3.c; cd ext/wasm; make“). Výstupem jsou soubory sqlite3.js a sqlite3.wasm, které lze zahrnout do vašeho projektu JavaScript (příklad HTML a JavaScript).

Zdroj: opennet.ru

Přidat komentář