SQLite prideda WASM palaikymą naudojant DBVS žiniatinklio naršyklėje

SQLite kūrėjai kuria projektą, skirtą įgyvendinti galimybę biblioteką kompiliuoti į tarpinį WebAssembly kodą, kuris gali veikti interneto naršyklėje ir tinkamas darbui su duomenų baze organizuoti iš žiniatinklio programų JavaScript kalba. „WebAssembly“ palaikymo kodas buvo įtrauktas į pagrindinę projekto saugyklą. Skirtingai nuo WebSQL API, kuri yra pagrįsta SQLite, WASM SQLite yra visiškai izoliuota nuo naršyklės ir neturi įtakos jos saugumui (Google nusprendė nutraukti WebSQL palaikymą naršyklėje Chrome po kelių SQLite pažeidžiamumų, kuriuos galima išnaudoti per WebSQL, kad atakuotų naršyklę ).

Projekto tikslas – pateikti veikiantį JavaScript įrišimą, kuris savo funkcijomis būtų identiškas SQLite API. Žiniatinklio kūrėjams suteikiama aukšto lygio į objektą orientuota sąsaja, skirta dirbti su duomenimis sql.js arba Node.js stiliaus, apvynioti žemo lygio C API ir API, pagrįsta Web Worker mechanizmu, kuris leidžia jums sukurti asinchronines tvarkykles, veikiančias atskirose gijose. Siekiant paslėpti darbo su gijomis organizavimo sudėtingumą ant Web Worker pagrindu sukurtos API, taip pat kuriamas programavimo sąsajos variantas, pagrįstas Promise mechanizmu.

Duomenys, kuriuos žiniatinklio programos saugo WASM SQLite versijoje, gali būti lokalizuoti dabartinės sesijos metu (prarandami įkėlus puslapį iš naujo) arba kliento pusėje (išliko tarp seansų). Nuolatiniam saugojimui buvo paruoštos užpakalinės programos, skirtos duomenims įdėti į vietinę failų sistemą, naudojant OPFS (Origin-Private FileSystem, failų sistemos prieigos API plėtinys, iki šiol pasiekiamas tik naršyklėse, pagrįstose WebKit ir Chromium) ir vietinės naršyklės saugyklose. remiantis windows.localStorage API ir window.sessionStorage. Naudojant localStorage/sessionStorage, duomenys susiejami su atitinkamomis raktų/reikšmių saugyklomis, o naudojant OPFS yra dvi parinktys: virtualios failų sistemos modeliavimas naudojant WASMFS ir atskiras sqlite3_vfs diegimas, siūlantis OPFS pagrindu pagrįstą SQLite VFS sluoksnį. .

Norint sukurti SQLite į WASM atvaizdą, naudojamas Emscripten kompiliatorius (pakanka sukurti ext/wasm plėtinį: "./configure --enable-all; make sqlite3.c; cd ext/wasm; make"). Išvestis yra sqlite3.js ir sqlite3.wasm failai, kuriuos galite įtraukti į savo JavaScript projektą (HTML ir JavaScript pavyzdys).

Šaltinis: opennet.ru

Добавить комментарий