SQLite pievieno WASM atbalstu DBVS lietošanai tīmekļa pārlūkprogrammā

SQLite izstrādātāji izstrādā projektu, lai ieviestu iespēju apkopot bibliotēku WebAssembly starpkodā, kas var darboties tīmekļa pārlūkprogrammā un ir piemērots darba organizēšanai ar datubāzi no tīmekļa lietojumprogrammām JavaScript valodā. WebAssembly atbalsta kods ir pievienots galvenajam projekta repozitorijai. Atšķirībā no WebSQL API, kuras pamatā ir SQLite, WASM SQLite ir pilnībā izolēta no pārlūkprogrammas un neietekmē tās drošību (Google nolēma pārtraukt WebSQL atbalstu pārlūkā Chrome pēc vairākām SQLite ievainojamībām, kuras varētu izmantot, izmantojot WebSQL, lai uzbruktu pārlūkprogrammai. ) .

Projekta mērķis ir nodrošināt funkcionējošu JavaScript iesiešanu, kas pēc funkcionalitātes ir identiska SQLite API. Tīmekļa izstrādātājiem tiek nodrošināts augsta līmeņa objektorientēts interfeiss darbam ar datiem sql.js vai Node.js stilā, ietīšana zema līmeņa C API un API, kuras pamatā ir Web Worker mehānisms, kas ļauj jums lai izveidotu asinhronus apdarinātājus, kas darbojas uz atsevišķiem pavedieniem. Lai slēptu sarežģījumus, organizējot darbu ar pavedieniem virs Web Worker balstītas API, tiek izstrādāts arī programmēšanas interfeisa variants, kas balstīts uz Promise mehānismu.

Dati, ko tīmekļa lietojumprogrammas glabā SQLite WASM versijā, var tikt lokalizēti pašreizējā sesijā (pazaudēti pēc lapas atkārtotas ielādes) vai klienta pusē (pastāvēja starp sesijām). Pastāvīgai glabāšanai aizmugursistēmas ir sagatavotas datu ievietošanai lokālajā failu sistēmā, izmantojot OPFS (Origin-Private FileSystem, failu sistēmas piekļuves API paplašinājums, kas līdz šim pieejams tikai pārlūkprogrammās, kuru pamatā ir WebKit un Chromium) un vietējās pārlūkprogrammas krātuvēs. pamatojoties uz windows.localStorage API un window.sessionStorage. Izmantojot localStorage/sessionStorage, dati tiek kartēti uz atbilstošajiem atslēgu/vērtību krātuvēm, savukārt, izmantojot OPFS, ir divas iespējas: simulēt virtuālo failu sistēmu, izmantojot WASMFS, un atsevišķu sqlite3_vfs implementāciju, kas piedāvā uz OPFS balstītu SQLite VFS slāni. .

Lai izveidotu SQLite WASM attēlojumā, tiek izmantots Emscripten kompilators (pietiek ar paplašinājuma ext/wasm izveidošanu: "./configure --enable-all; make sqlite3.c; cd ext/wasm; make"). Rezultāts ir sqlite3.js un sqlite3.wasm faili, kurus varat iekļaut savā JavaScript projektā (HTML un JavaScript piemērs).

Avots: opennet.ru

Pievieno komentāru