Zhvilluesit e SQLite janë duke zhvilluar një projekt për të realizuar mundësinë e kompilimit të bibliotekës në kodin ndërmjetës WebAssembly, i cili është i aftë të ekzekutohet në shfletuesin e web-it dhe është i përshtatshëm për organizimin e punës me bazat e të dhënave nga aplikacionet web në gjuhën JavaScript. Kodi për mbështetje të WebAssembly është shtuar në repository-n kryesore të projektit. Ndryshe nga API WebSQL, i cili mbështetet në SQLite, WASM SQLite është plotësisht i izoluar nga shfletuesi dhe nuk ndikon në sigurinë e tij (Google vendosi të ndalojë mbështetje për WebSQL në Chrome pas disa dobësive në SQLite, të cilat mund të shfrytëzoheshin përmes WebSQL për të sulmuar shfletuesin).
Qëllimi i projektit është ofrimi i një lidhjeje JavaScript funksionale, e cila është identike në funksionalitet me API SQLite. Web-zhvilluesit do të kenë në dispozicion një interface të orientuar nga objekti me nivele të larta për punën me të dhënat në stilin e sql.js ose Node.js, një lidhje mbi C API me nivele të ulëta dhe API bazuar në mekanizmin Web Worker, i cili lejon krijimin e përpunuesve asinkronë që ekzekutohen në përpunues të veçantë. Për të fshehur ndërlikimet e organizimit të punës me përpunuesit mbi API-në e bazuar në Web Worker, gjithashtu po zhvillohet një variant i ndërfaqes së programimit mbi mekanizmin Promise.
Të dhënat që aplikacionet web ruajnë në versionin WASM të SQLite mund të lokalizohen brenda sesionit aktual (do të humbasin pas rinovimit të faqeve) ose të ruhen në anën e klientit (ruhen mes sesioneve). Për ruajtje të përhershme janë përgatitur backend-e për vendosjen e të dhënave në sistemin lokal të skedarëve me ndihmën e OPFS (Origin-Private FileSystem, një shtesë për API-në e Aksessit në Sistemin e Skedarëve, e cila aktualisht është e disponueshme vetëm në shfletuesit e bazuar në WebKit dhe Chromium) dhe në ruajtjet lokale të shfletuesve mbi bazën e API-së window.localStorage dhe window.sessionStorage. Në rastin e përdorimit të localStorage/sessionStorage, të dhënat pasqyrohen në ruajtjet përkatëse në formatin çelës/vlerë, dhe kur përdoret OPFS, parashikohen dy variante: simulimi i një sistemi të skedarëve virtual me ndihmën e WASMFS dhe një realizim të veçantë sqlite3_vfs, që ofron një kat përmbi VFS SQLite mbi OPFS.
Për ndërtimin e SQLite në formën WASM, është përdorur kompilatori Emscripten (mjafton të ndihmohet me zgjerimin ext/wasm: "./configure --enable-all; make sqlite3.c; cd ext/wasm; make"). Në dalje formohen skedarët sqlite3.js dhe sqlite3.wasm, të cilat mund të përfshihen në projektin tuaj JavaScript (shembuj HTML dhe JavaScript).
Burimi: opennet.ru
