SQLite foeget WASM-stipe ta foar it brûken fan de DBMS yn in webbrowser

SQLite-ûntwikkelders ûntwikkelje in projekt om de mooglikheid te realisearjen om de bibleteek te kompilearjen yn WebAssembly-tuskenkoade, yn steat om te rinnen yn in webblêder en geskikt foar it organisearjen fan wurk mei de databank fan webapplikaasjes yn JavaScript. Koade om WebAssembly te stypjen is tafoege oan it haadprojektrepository. Oars as de WebSQL API, dy't basearre is op SQLite, is WASM SQLite folslein isolearre fan 'e browser en hat gjin ynfloed op syn feiligens (Google besleat stipe foar WebSQL yn Chrome ôf te brekken neidat ferskate kwetsberens yn SQLite kinne wurde eksploitearre fia WebSQL om de browser oan te fallen) .

It doel fan it projekt is om in wurkjend JavaScript-ramt te leverjen dat identyk is yn funksjonaliteit oan de SQLite API. Webûntwikkelders wurde foarsjoen fan in heech nivo objekt-oriïntearre ynterface foar it wurkjen mei gegevens yn 'e styl fan sql.js of Node.js, in bining oer de leech-nivo C API en in API basearre op it Web Worker-meganisme, wêrtroch't it mooglik makket jo om asynchrone handlers te meitsjen útfierd yn aparte diskusjes. Om de yngewikkeldheden fan it organisearjen fan wurk mei streamen boppe op 'e Web Worker-basearre API te ferbergjen, wurdt ek in ferzje fan' e programma-ynterface basearre op it Promise-meganisme ûntwikkele.

De gegevens dy't webapplikaasjes opslaan yn 'e WASM-ferzje fan SQLite kinne wurde pleatst binnen de aktuele sesje (ferlern nei it opnij laden fan side) of opslein op 'e kliïntside (opslein tusken sesjes). Foar permaninte opslach binne backends taret foar it pleatsen fan gegevens yn it lokale bestânsysteem mei OPFS (Origin-Private FileSystem, in tafoeging oan de File System Access API, op it stuit allinich beskikber yn browsers basearre op WebKit en Chromium) en yn lokale browser-opslach basearre. op de window.localStorage API en window.sessionStorage. By it brûken fan localStorage/sessionStorage, wurde de gegevens yn 'e korrespondearjende winkels reflektearre yn in kaai-/weardeformaat, en by it brûken fan OPFS binne d'r twa opsjes: simulearje in firtuele FS mei WASMFS en in aparte ymplemintaasje fan sqlite3_vfs, it oanbieden fan in SQLite VFS-laach basearre op OPFS.

Om SQLite yn in WASM-werjefte te bouwen, wurdt de Emscripten-kompiler brûkt (it is genôch om de ext/wasm-útwreiding te bouwen: "./configure -enable-all; meitsje sqlite3.c; cd ext/wasm; meitsje"). De útfier is sqlite3.js en sqlite3.wasm triemmen, dy't kinne wurde opnommen yn jo JavaScript projekt (HTML en JavaScript foarbyld).

Boarne: opennet.ru

Add a comment