In SQLite è stato aggiunto il supporto per WASM per utilizzare il DBMS nel web browser.

Gli sviluppatori di SQLite stanno portando avanti un progetto per implementare la possibilità di compilare la libreria in codice intermedio WebAssembly, capace di essere eseguito nel browser 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 abbandonare il supporto per WebSQL in Chrome dopo diverse vulnerabilità in SQLite che potevano essere sfruttate tramite WebSQL per attaccare il browser).

L'obiettivo del progetto è fornire un'interfaccia JavaScript funzionante, equivalente in funzionalità all'API SQLite. Gli sviluppatori web hanno a disposizione un'interfaccia oggetto di alto livello per lavorare con i dati nello stile di sql.js o Node.js, un'interfaccia sopra il basso livello C API e un'API basata sul meccanismo Web Worker, che consente di creare gestori asincroni eseguiti in thread separati. Per nascondere le complessità della gestione dei thread attraverso l'API basata su Web Worker, si sta anche sviluppando una variante dell'interfaccia basata sul meccanismo Promise.

I dati che le applicazioni web memorizzano nella versione WASM di SQLite possono essere localizzati all'interno della sessione corrente (persi dopo il ricaricamento delle pagine) o salvati sul lato client (conservati tra le sessioni). Per la memorizzazione permanente, sono stati preparati backend per l'archiviazione dei dati nel file system locale utilizzando OPFS (Origin-Private FileSystem, un'estensione all'API File System Access, disponibile attualmente solo nei browser basati su WebKit e Chromium) e in archiviazioni locali del browser basate sull'API window.localStorage e window.sessionStorage. Se si utilizza localStorage/sessionStorage, i dati sono riflessi negli archivi corrispondenti nel formato chiave/valore, mentre con OPFS sono previsti due opzioni: 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 (è sufficiente compilare l'estensione ext/wasm: «./configure --enable-all; make sqlite3.c; cd ext/wasm; make»). In uscita 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, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS | ProHoster