Zhvilluesit e SQLite po vazhdojnë projektin për implementimin e mundësisë për kompilimin e bibliotekës në kodin e mesëm WebAssembly, i cili është në gjendje të ekzekutohet në shfletuesin e internetit dhe është i përshtatshëm për organizimin e punës me DB nga aplikacionet web në gjuhën JavaScript. Kodi për mbështetje të WebAssembly është shtuar në depo kryesore të projektit. Ndryshe nga API WebSQL, i cili bazohet në SQLite, WASM SQLite është krejtësisht i izoluar nga shfletuesi dhe nuk ndikon në sigurinë e tij (Google vendosi të ndërpresë mbështetjes për WebSQL në Chrome pas disa dobësive në SQLite që mund të shfrytëzoheshin përmes WebSQL për të sulmuar shfletuesin).
Qëllimi i projektit është ofrimi i një lidhje JavaScript funksionale, identike me API SQLite. Zhvilluesve web u ofrohet një ndërfaqe të nivelit të lartë të orientuar drejt objektit për punë me të dhënat në stilin e sql.js ose Node.js, një lidhje mbi API-në e ulët C dhe API-në mbi mekanizmin Web Worker, i cili lejon krijimin e përpunuesve asinkronë që ekzekutohen në pika të veçanta. Për të fshehur nuancat e organizimit të punës me përcjellësit mbi API-në mbi Web Worker po zhvillohet gjithashtu një variant i ndërfaqes përmes mekanizmit Promise.
Të dhënat që aplikacionet web ruajnë në versionin WASM të SQLite mund të jenë të lokalizuara brenda seancës aktuale (shkaterrohen pas rifreskimit të faqeve) ose të ruajtur në anën e klientit (ruhen midis seancave). Për ruajtje të qëndrueshme janë përgatitur prapaveç të dhënash për vendosjen e të dhënave në FS-në lokale përmes OPFS (Origin-Private FileSystem, një zgjerim i API-t të Aksesit në Sistemin e Të Dhënave, i disponueshëm për momentin vetëm në shfletuesit e bazuar në WebKit dhe Chromium) dhe në magazinat lokale të shfletuesit mbi bazën e API-t window.localStorage dhe window.sessionStorage. Në rastin e përdorimit të localStorage/sessionStorage, të dhënat reflektohen në magazinat respektive në formatin çelës/vlerë, ndërsa për përdorimin e OPFS janë parashikuar dy variante: simulimi i një FS të virtualizuar përmes WASMFS dhe një implementim i veçantë sqlite3_vfs, që ofron një nivel SQLite VFS mbi OPFS.
Për ndërtimin e SQLite në një përfaqësim WASM është angazhuar kompaktori Emscripten (bën të mjaftueshme ndërtimin e zgjerimit ext/wasm: "./configure --enable-all; make sqlite3.c; cd ext/wasm; make"). Në përfundim, formohen skedarët sqlite3.js dhe sqlite3.wasm, të cilat mund të inkorporohen në projektin tuaj JavaScript (shembull HTML dhe JavaScript).
Burimi: opennet.ru
