SQLite arendajad töötavad projekti kallal, et rakendada raamatukogu kompileerimise võimalus WebAssembly vahepealseks koodiks, mis suudab töötada veebibrauseris ja on sobilik andmebaaside haldamiseks veebirakendustest JavaScripti keeles. WebAssembly toetav kood on lisatud projekti põhireposiiti. Erinevalt WebSQL API-st, mille aluseks on SQLite, on WASM SQLite täielikult eraldatud brauserist ja ei mõjuta selle turvalisust (Google otsustas Chrome'is WebSQL toe lõpetada pärast mitmeid SQLite haavatavusi, mida sai kasutada rünnakute juhtimiseks WebSQL kaudu brauserisse).
Projekti eesmärk on pakkuda töötavat JavaScripti mähist, mille funktsionaalsus on sarnane SQLite API-ga. Veebiarendajatele pakutakse kõrgetasemelist objekt-orienteeritud liidest andmete töötlemiseks stiilis sql.js või Node.js, madala taseme C API mähis ja API, mis põhineb Web Workeri mehhanismil, võimaldades luua asünkroonseid töötlejaid, mida käitatakse eraldi niitides. Web Workeri baasil API kallal töötades arendatakse ka välja võimalus Programmeerimisel põhineva liidese loomine Promise'i mehhanismi kasutades, et varjata keerulisi protsesside haldamise nüansse.
Web-rakendustes salvestatud andmed, mis kasutavad WASM-versiooni SQLite'ist, võivad olla lokaliseeritud jooksva seansi raames (kaduvad pärast lehtede värskendamist) või salvestatud kliendi poolel (säilitatakse seansside vahel). Püsiva salvestamise jaoks on ette nähtud tagaplaanid, mis võimaldavad andmete paigutamist kohalikku failisüsteemi OPFS-i (Origin-Private FileSystem, File System Access API laiendus, mis on hetkel saadaval ainult WebKit- ja Chromium-põhistes brauserites) abil ning kohalikes brauseri salvestustes, kasutades API-d window.localStorage ja window.sessionStorage. Kui kasutatakse localStorage/sessionStorage, siis andmed peegelduvad sobivates salvestustes võtme/väärtuse formaadis; OPFS kasutamisel on ette nähtud kaks varianti: virtuaalsete failisüsteemide simulatsioon WASMFS-i abil ja eraldi rakendus sqlite3_vfs, pakkudes SQLite VFS kihti OPFS-i põhjal.
SQLite'i koostamiseks WASM-esitluses on kasutatud Emscripteni kompilaatorit (piisab laienduse ext/wasm kokkupanemisest: «./configure --enable-all; make sqlite3.c; cd ext/wasm; make»). Väljundis genereeritakse failid sqlite3.js ja sqlite3.wasm, mida saab oma JavaScripti projekti lisada (HTML ja JavaScripti näide).
Allikas: opennet.ru
