Le support de WASM a été ajouté à SQLite pour l'utilisation de la base de données dans un navigateur web.

Les dĂ©veloppeurs de SQLite travaillent sur un projet visant Ă  compiler la bibliothĂšque en code intermĂ©diaire WebAssembly, capable de s'exĂ©cuter dans les navigateurs web et adaptĂ© Ă  la gestion des bases de donnĂ©es Ă  partir d'applications web en JavaScript. Le code pour le support de WebAssembly a Ă©tĂ© ajoutĂ© au dĂ©pĂŽt principal du projet. Contrairement Ă  l'API WebSQL, qui repose sur SQLite, WASM SQLite est complĂštement isolĂ© du navigateur et n'affecte pas sa sĂ©curitĂ© (Google a dĂ©cidĂ© d'abandonner le support de WebSQL dans Chrome aprĂšs plusieurs vulnĂ©rabilitĂ©s dans SQLite pouvant ĂȘtre exploitĂ©es via WebSQL pour attaquer le navigateur).

Le projet vise à fournir un wrapper JavaScript fonctionnel, identique en fonctionnalité à l'API SQLite. Il offre aux développeurs web une interface orientée objet de haut niveau pour travailler avec des données dans le style de sql.js ou Node.js, ainsi qu'un wrapper au-dessus de l'API C de bas niveau et une API basée sur le mécanisme Web Worker, permettant de créer des gestionnaires asynchrones exécutés dans des threads distincts. Pour masquer les subtilités de l'organisation du travail avec les threads via l'API basée sur Web Worker, une variante de l'interface est également développée sur la base du mécanisme Promise.

Les donnĂ©es que les applications web sauvegardent dans la version WASM de SQLite peuvent ĂȘtre localisĂ©es dans le cadre de la session en cours (elles sont perdues aprĂšs le rechargement des pages) ou sauvegardĂ©es cĂŽtĂ© client (elles sont conservĂ©es entre les sessions). Des backends ont Ă©tĂ© prĂ©parĂ©s pour stocker des donnĂ©es dans le systĂšme de fichiers local via OPFS (Origin-Private FileSystem, une extension Ă  l'API d'accĂšs au systĂšme de fichiers, disponible pour le moment uniquement dans les navigateurs basĂ©s sur WebKit et Chromium) et dans les stockages locaux du navigateur via l'API window.localStorage et window.sessionStorage. En cas d'utilisation de localStorage/sessionStorage, les donnĂ©es sont stockĂ©es dans les rĂ©serves correspondantes au format clĂ©/valeur, tandis qu'en utilisant OPFS, deux options sont prĂ©vues : la simulation d'un systĂšme de fichiers virtuel Ă  l'aide de WASMFS et une implĂ©mentation distincte de sqlite3_vfs, offrant une couche SQLite VFS basĂ©e sur OPFS.

Pour assembler SQLite en reprĂ©sentation WASM, le compilateur Emscripten est utilisĂ© (il suffit de construire l'extension ext/wasm : « ./configure --enable-all ; make sqlite3.c ; cd ext/wasm ; make »). À la sortie, les fichiers sqlite3.js et sqlite3.wasm sont gĂ©nĂ©rĂ©s, pouvant ĂȘtre inclus dans votre projet JavaScript (exemple HTML et JavaScript).

Source : opennet.ru

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster