SQLite pridáva podporu WASM pre používanie DBMS vo webovom prehliadači

Vývojári SQLite vyvíjajú projekt na implementáciu schopnosti zostaviť knižnicu do intermediálneho kódu WebAssembly, schopného bežať vo webovom prehliadači a vhodného na organizáciu práce s databázou z webových aplikácií v JavaScripte. Kód na podporu WebAssembly bol pridaný do hlavného úložiska projektu. Na rozdiel od rozhrania WebSQL API, ktoré je založené na SQLite, je WASM SQLite úplne izolovaný od prehliadača a neovplyvňuje jeho bezpečnosť (Google sa rozhodol ukončiť podporu pre WebSQL v prehliadači Chrome po tom, čo bolo možné prostredníctvom WebSQL zneužiť niekoľko zraniteľností v SQLite na útok na prehliadač) .

Cieľom projektu je poskytnúť fungujúci JavaScript framework, ktorý je funkčne identický s SQLite API. Webovým vývojárom je poskytnuté vysokoúrovňové objektovo orientované rozhranie pre prácu s údajmi v štýle sql.js alebo Node.js, väzba cez nízkoúrovňové C API a API založené na mechanizme Web Worker, ktoré umožňuje môžete vytvoriť asynchrónne obslužné programy vykonávané v samostatných vláknach. Aby sa skryli zložitosti organizácie práce s prúdmi nad rozhraním Web Worker API, vyvíja sa aj verzia programového rozhrania založená na mechanizme Promise.

Údaje, ktoré webové aplikácie ukladajú vo verzii WASM SQLite, môžu byť lokalizované v rámci aktuálnej relácie (stratené po opätovnom načítaní stránky) alebo uložené na strane klienta (uložené medzi reláciami). Pre trvalé ukladanie boli pripravené backendy na umiestňovanie údajov do lokálneho súborového systému pomocou OPFS (Origin-Private FileSystem, rozšírenie k File System Access API, momentálne dostupné len v prehliadačoch založených na WebKit a Chromium) a do lokálneho úložiska prehliadača. na window.localStorage API a window.sessionStorage. Pri použití localStorage/sessionStorage sa údaje odrážajú v zodpovedajúcich úložiskách vo formáte kľúč/hodnota a pri použití OPFS existujú dve možnosti: simulácia virtuálneho FS pomocou WASMFS a samostatná implementácia sqlite3_vfs, ktorá ponúka vrstvu založenú na SQLite VFS na OPFS.

Na zabudovanie SQLite do pohľadu WASM sa používa kompilátor Emscripten (stačí zostaviť rozšírenie ext/wasm: „./configure —enable-all; make sqlite3.c; cd ext/wasm; make“). Výstupom sú súbory sqlite3.js a sqlite3.wasm, ktoré možno zahrnúť do vášho projektu JavaScript (príklad HTML a JavaScript).

Zdroj: opennet.ru

Pridať komentár