SQLite arendajad töötavad vĂ€lja projekti, mis lubab kompileerida teeki WebAssembly vahekaardiks, mis on vĂ”imeline töötama veebibrauseris ja sobib andmebaaside haldamiseks veebirakendustes JavaScripti keeles. WebAssembly toe kood on lisatud projekti pearepole. Erinevalt WebSQL API-st, mis pĂ”hineb SQLite'il, on WASM SQLite tĂ€ielikult isoleeritud brauserist ja ei mĂ”juta selle turvalisust (Google otsustas Chrome'is loobuda WebSQL kĂ€tkest pĂ€rast mitmeid SQLite'i haavatavusi, mida oli vĂ”imalik Ă€ra kasutada WebSQL kaudu brauseri rĂŒndamiseks).
Projekti eesmĂ€rk on pakkuda töötavat JavaScripti seotud teeki, mis on funktsionaalsuses vĂ”rreldav SQLite API-ga. Veebiarendajatele pakutakse kĂ”rgetasemelist objekt-orienteeritud liidest andmete töötlemiseks sql.js vĂ”i Node.js stiilis, madalat C API-d ning Web Workeri mehhanismiga pĂ”hinevat API-d, mis vĂ”imaldab luua asĂŒnkrone töötlejaid, mis töötavad eraldi lĂ”imedes. Ajutise töötlemise varjamine Web Workeri pĂ”histe API-de taustal eeldab ka lubava Promise mehhanismi pĂ”hjalise API arendamist.
Andmed, mida veebirakendused salvestavad WASM-i versioonis SQLite, vĂ”ivad olla lokaalsed hetke sessioonis (kaovad pĂ€rast lehe uuesti laadimist) vĂ”i salvestatud kliendi poole (salvestatakse sessioonide vahel). PĂŒsivaks salvestamiseks on ette valmistatud tagaplaanid andmete salvestamiseks kohalikku failisĂŒsteemi OPFS (Origin-Private FileSystem, laienemine File System Access API-le, mis on hetkel saadaval vaid WebKit ja Chromiumile pĂ”hinevates brauserites) ja kohalikes veebibrauseri salvestustes, mis pĂ”hinevad API-l window.localStorage ja window.sessionStorage. Kui kasutatakse localStorage/sessionStorage, peegelduvad andmed vastavates salvestustes vĂ”tme/vÀÀrtuse formaadis, ning OPFS-i puhul on kavandatud kaks varianti: virtuaalse failisĂŒsteemi simuleerimine WASMFS-i abil ja eraldi rakendus sqlite3_vfs, mis pakub SQLite VFS-kiht OPFS-i pĂ”hjal.
SQLite kogumiseks WASM-esitluses kasutatakse Emscripteni kompilaatorit (ainult on vajalik kompileerida laiendus ext/wasm: «./configure --enable-all; make sqlite3.c; cd ext/wasm; make»). VÀljundiks on failid sqlite3.js ja sqlite3.wasm, mida saab lisada oma JavaScripti projekti (HTML ja JavaScripti nÀide).
Allikas: opennet.ru
