In SQLite è stata aggiunta la supporto per WASM per l'utilizzo del DBMS nel web browser.

Gli sviluppatori di SQLite stanno lavorando a un progetto per implementare la possibilità di compilare la libreria in codice intermedio WebAssembly, in grado di essere eseguito nei browser web e adatto per gestire database da applicazioni web in JavaScript. Il codice per supportare WebAssembly è stato aggiunto al repository principale del progetto. A differenza dell'API WebSQL, che si basa su SQLite, WASM SQLite è completamente isolato dal browser e non influisce sulla sua sicurezza (Google ha deciso di eliminare il supporto per WebSQL in Chrome dopo diverse vulnerabilità in SQLite, che potevano essere sfruttate attraverso WebSQL per attaccare il browser).

L'obiettivo del progetto è fornire un'interfaccia JavaScript funzionante, identica per funzionalità all'API SQLite. Gli sviluppatori web hanno a disposizione un'interfaccia ad oggetti ad alto livello per interagire con i dati in modo simile a sql.js o Node.js, un'interfaccia sopra un'API C a basso livello e un'API basata su un meccanismo Web Worker, che consente di creare gestori asincroni eseguiti in thread separati. Per nascondere i dettagli sulla gestione dei thread tramite l'API basata su Web Worker, si sta anche sviluppando una versione dell'interfaccia basata su meccanismi Promise.

I dati che le applicazioni web salvano nella versione WASM di SQLite possono essere localizzati all'interno della sessione corrente (perduti dopo il ricaricamento delle pagine) o salvati sul lato client (conservati tra le sessioni). Per la memorizzazione persistente, sono stati preparati backend per posizionare i dati nel file system locale tramite OPFS (Origin-Private FileSystem, estensione all'API File System Access, attualmente disponibile solo nei browser basati su WebKit e Chromium) e negli archivi locali dei browser basati su API window.localStorage e window.sessionStorage. Nel caso in cui vengano utilizzati localStorage/sessionStorage, i dati vengono riflessi negli archivi corrispondenti nel formato chiave/valore, mentre con OPFS sono previsti due opzioni: la simulazione di un file system virtuale tramite WASMFS e un'implementazione separata di sqlite3_vfs, che offre uno strato SQLite VFS basato su OPFS.

Per compilare SQLite in formato WASM viene utilizzato il compilatore Emscripten (basta compilare l'estensione ext/wasm: «./configure —enable-all; make sqlite3.c; cd ext/wasm; make»). In output si generano i file sqlite3.js e sqlite3.wasm, che possono essere inclusi nel proprio progetto JavaScript (esempio di HTML e JavaScript).

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster