SQLite ahora incluye soporte para WASM para utilizar la base de datos en un navegador web.

Los desarrolladores de SQLite están trabajando en la implementación de la posibilidad de compilar la biblioteca en código intermedio WebAssembly, el cual puede ejecutarse en un navegador web y es adecuado para manejar bases de datos desde aplicaciones web en JavaScript. El código para soporte de WebAssembly se ha añadido al repositorio principal del proyecto. A diferencia de la API WebSQL, que se basa en SQLite, WASM SQLite está completamente aislado del navegador y no afecta su seguridad (Google decidió retirar el soporte de WebSQL en Chrome tras varias vulnerabilidades en SQLite que podían ser explotadas a través de WebSQL para atacar al navegador).

El objetivo del proyecto es proporcionar un envoltorio JavaScript funcionalmente equivalente a la API de SQLite. Se ofrece a los desarrolladores web una interfaz de alto nivel orientada a objetos para trabajar con datos al estilo de sql.js o Node.js, un envoltorio sobre la API C de bajo nivel y una API basada en el mecanismo Web Worker, que permite crear manejadores asincrónicos ejecutados en hilos separados. Para ocultar los detalles de la gestión de hilos sobre la API basada en Web Worker, también se está desarrollando una variante de la interfaz basada en el mecanismo Promise.

Los datos que las aplicaciones web guardan en la versión WASM de SQLite pueden ser localizados dentro de la sesión actual (se pierden tras recargar las páginas) o guardados en el lado del cliente (se conservan entre sesiones). Para almacenamiento persistente, se han preparado backends para almacenar datos en el sistema de archivos local mediante OPFS (Origin-Private FileSystem, una extensión de la API de acceso al sistema de archivos, disponible solo en navegadores basados en WebKit y Chromium) y en los almacenes locales de los navegadores basados en la API window.localStorage y window.sessionStorage. En caso de usar localStorage/sessionStorage, los datos se reflejan en los respectivos almacenes en formato clave/valor, mientras que al usar OPFS se contemplan dos opciones: simulación de un sistema de archivos virtual mediante WASMFS y una implementación separada de sqlite3_vfs, que ofrece una capa SQLite VFS basada en OPFS.

Para compilar SQLite en la representación WASM se utiliza el compilador Emscripten (basta con compilar la extensión ext/wasm: «./configure --enable-all; make sqlite3.c; cd ext/wasm; make»). Como resultado, se generan los archivos sqlite3.js y sqlite3.wasm, que se pueden incluir en su proyecto JavaScript (ejemplo de HTML y JavaScript).

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster