SQLite shton mbështetjen WASM për përdorimin e DBMS në një shfletues ueb

Zhvilluesit e SQLite po zhvillojnë një projekt për të zbatuar aftësinë për të përpiluar bibliotekën në kodin e ndërmjetëm WebAssembly, i aftë për të ekzekutuar në një shfletues ueb dhe i përshtatshëm për organizimin e punës me bazën e të dhënave nga aplikacionet në internet në JavaScript. Kodi për të mbështetur WebAssembly është shtuar në depon kryesore të projektit. Ndryshe nga WebSQL API, i cili bazohet në SQLite, WASM SQLite është plotësisht i izoluar nga shfletuesi dhe nuk ndikon në sigurinë e tij (Google vendosi të zhvlerësojë mbështetjen për WebSQL në Chrome pasi disa dobësi në SQLite mund të shfrytëzoheshin përmes WebSQL për të sulmuar shfletuesin) .

Qëllimi i projektit është të sigurojë një kornizë pune JavaScript që është identike në funksionalitet me SQLite API. Zhvilluesit e uebit pajisen me një ndërfaqe të nivelit të lartë të orientuar nga objekti për të punuar me të dhëna në stilin e sql.js ose Node.js, një lidhje me API-në e nivelit të ulët C dhe një API të bazuar në mekanizmin Web Worker, i cili lejon ju të krijoni mbajtës asinkron të ekzekutuar në fije të veçanta. Për të fshehur ndërlikimet e organizimit të punës me transmetime në krye të API-së së bazuar në Web Worker, po zhvillohet gjithashtu një version i ndërfaqes së programit bazuar në mekanizmin Promise.

Të dhënat që aplikacionet në ueb ruajnë në versionin WASM të SQLite mund të lokalizohen brenda sesionit aktual (humben pas ringarkimit të faqes) ose të ruhen në anën e klientit (të ruhen midis sesioneve). Për ruajtje të përhershme, backend-et janë përgatitur për vendosjen e të dhënave në sistemin lokal të skedarëve duke përdorur OPFS (Origin-Private FileSystem, një shtesë në API të Access System File, aktualisht disponohet vetëm në shfletuesit e bazuar në WebKit dhe Chromium) dhe në ruajtjen lokale të shfletuesit. në dritaren.localStorage API dhe window.sessionStorage. Kur përdorni localStorage/sessionStorage, të dhënat pasqyrohen në dyqanet përkatëse në një format kyç/vlerë, dhe kur përdorni OPFS, ekzistojnë dy opsione: simulimi i një FS virtual duke përdorur WASMFS dhe një zbatim i veçantë i sqlite3_vfs, duke ofruar një shtresë të bazuar në SQLite VFS në OPFS.

Për të ndërtuar SQLite në një pamje WASM, përdoret përpiluesi Emscripten (mjafton të ndërtoni shtesën ext/wasm: "./configure —enable-all; make sqlite3.c; cd ext/wasm; make"). Dalja është skedarë sqlite3.js dhe sqlite3.wasm, të cilët mund të përfshihen në projektin tuaj JavaScript (shembull HTML dhe JavaScript).

Burimi: opennet.ru

Shto një koment