SQLite lisab WASM-i toe DBMS-i kasutamiseks veebibrauseris

SQLite'i arendajad töötavad välja projekti, mille abil juurutada võimalus koostada teegi WebAssembly vahekoodiks, mis on võimeline töötama veebibrauseris ja sobilik JavaScriptis veebirakendustest andmebaasiga töö korraldamiseks. Põhiprojekti hoidlasse on lisatud WebAssemblyt toetav kood. Erinevalt WebSQL API-st, mis põhineb SQLite'il, on WASM SQLite brauserist täielikult isoleeritud ega mõjuta selle turvalisust (Google otsustas Chrome'is WebSQL-i toe katkestada, kuna mitut SQLite'i turvaauku võidi WebSQL-i kaudu brauseri ründamiseks ära kasutada) .

Projekti eesmärk on pakkuda töötavat JavaScripti raamistikku, mis on funktsionaalsuselt identne SQLite API-ga. Veebiarendajad on varustatud kõrgetasemelise objektorienteeritud liidesega andmetega töötamiseks stiilis sql.js või Node.js, sidumine madala taseme C API-ga ja API, mis põhineb Web Workeri mehhanismil, mis võimaldab saate luua asünkroonseid töötlejaid, mis käivitatakse eraldi lõimedes. Et varjata Web Worker-põhise API peal voogudega töö korraldamise keerukust, töötatakse välja ka Promise mehhanismil põhinev programmiliidese versioon.

Andmed, mida veebirakendused SQLite'i WASM-i versioonis salvestavad, saab lokaliseerida praeguses seansis (kaovad pärast lehe uuesti laadimist) või salvestada kliendi poolele (salvestatakse seansside vahel). Püsisalvestuseks on taustaprogrammid ette valmistatud andmete paigutamiseks kohalikku failisüsteemi, kasutades OPFS-i (Origin-Private FileSystem, failisüsteemi juurdepääsu API laiendus, praegu saadaval ainult WebKiti ja Chromiumi baasil brauserites) ja kohaliku brauseri salvestusruumi. aknas window.localStorage API ja window.sessionStorage. LocalStorage/sessionStorage'i kasutamisel kajastuvad andmed vastavates poodides võtme/väärtuse formaadis ning OPFS-i kasutamisel on kaks võimalust: virtuaalse FS-i simuleerimine WASMFS-i abil ja sqlite3_vfs eraldi realiseerimine, pakkudes SQLite VFS-i kihipõhist. OPFS-is.

SQLite'i WASM-vaatesse ehitamiseks kasutatakse Emscripteni kompilaatorit (piisab ext/wasm laiendi ehitamisest: “./configure —enable-all; make sqlite3.c; cd ext/wasm; make”). Väljundiks on failid sqlite3.js ja sqlite3.wasm, mida saab lisada teie JavaScripti projekti (HTML ja JavaScripti näide).

Allikas: opennet.ru

Lisa kommentaar