SQLite heeft ondersteuning voor WASM toegevoegd voor het gebruik van de database in de webbrowser.

De ontwikkelaars van SQLite zijn bezig met het project om de mogelijkheid te implementeren om de bibliotheek te compileren naar WebAssembly-intermediate code, die in de webbrowser kan worden uitgevoerd en geschikt is voor het werken met databases vanuit webapplicaties in JavaScript. De ondersteuning voor WebAssembly-code is toegevoegd aan de hoofdrepository van het project. In tegenstelling tot de WebSQL API, die is gebaseerd op SQLite, is WASM SQLite volledig geĆÆsoleerd van de browser en heeft het geen invloed op de veiligheid ervan (Google heeft besloten de ondersteuning voor WebSQL in Chrome stop te zetten na verschillende kwetsbaarheden in SQLite, die konden worden uitgebuit via WebSQL voor een aanval op de browser).

Het doel van het project is het aanbieden van een werkende JavaScript-wrapper, die functioneel identiek is aan de SQLite API. Webontwikkelaars krijgen een hoog-niveau objectgeoriƫnteerde interface om met gegevens te werken in de stijl van sql.js of Node.js, een wrapper bovenop de lage-niveau C API en een API gebaseerd op het Web Worker mechanisme, dat het mogelijk maakt om asynchrone handlers te creƫren die in aparte threads worden uitgevoerd. Voor het verbergen van de details van het werken met threads bovenop de Web Worker API, wordt ook een versie van de programmeerinterface op basis van het Promise-mechanisme ontwikkeld.

De gegevens die webapplicaties opslaan in de WASM-versie van SQLite kunnen worden gelokaliseerd binnen de huidige sessie (verloren na pagina herlaad) of opgeslagen aan de clientzijde (blijven bewaard tussen sessies). Voor permanente opslag zijn backends voorbereid voor het opslaan van gegevens in het lokale bestandssysteem met behulp van OPFS (Origin-Private FileSystem, een uitbreiding van de File System Access API, momenteel alleen beschikbaar in WebKit- en Chromium-gebaseerde browsers) en in lokale browseropslag op basis van de window.localStorage en window.sessionStorage API. In het geval van gebruik van localStorage/sessionStorage worden de gegevens weergegeven in de bijbehorende opslag in het sleutel/waarde-formaat, en bij gebruik van OPFS zijn er twee opties: de simulatie van een virtueel bestandssysteem met behulp van WASMFS en een aparte implementatie van sqlite3_vfs, die een laag SQLite VFS op basis van OPFS aanbiedt.

Voor het bouwen van SQLite in WASM-vorm wordt de Emscripten-compiler gebruikt (het is voldoende om de extensie ext/wasm te bouwen: ā€˜./configure —enable-all; make sqlite3.c; cd ext/wasm; make’). De uitvoer genereert de bestanden sqlite3.js en sqlite3.wasm, die kunnen worden opgenomen in uw JavaScript-project (voorbeeld HTML en JavaScript).

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster