SQLite engade soporte WASM para usar o DBMS nun navegador web

Os desenvolvedores de SQLite están a desenvolver un proxecto para implementar a capacidade de compilar a biblioteca en código intermedio WebAssembly, capaz de executarse nun navegador web e axeitado para organizar o traballo coa base de datos desde aplicacións web en JavaScript. Engadiuse o código para soportar WebAssembly ao repositorio principal do proxecto. A diferenza da API de WebSQL, que está baseada en SQLite, WASM SQLite está completamente illado do navegador e non afecta á súa seguridade (Google decidiu deixar en desuso o soporte para WebSQL en Chrome despois de que varias vulnerabilidades de SQLite puidesen ser explotadas a través de WebSQL para atacar o navegador) .

O obxectivo do proxecto é proporcionar un marco de traballo JavaScript que sexa idéntico en funcións á API de SQLite. Os desenvolvedores web dispoñen dunha interface orientada a obxectos de alto nivel para traballar con datos ao estilo de sql.js ou Node.js, unha vinculación sobre a API C de baixo nivel e unha API baseada no mecanismo Web Worker, que permite pode crear controladores asíncronos executados en fíos separados. Para ocultar as complexidades de organizar o traballo con fluxos enriba da API baseada en Web Worker, tamén se está a desenvolver unha versión da interface do programa baseada no mecanismo Promise.

Os datos que almacenan as aplicacións web na versión WASM de SQLite pódense localizar dentro da sesión actual (perderse despois de recargar a páxina) ou almacenarse no lado do cliente (gardarse entre sesións). Para o almacenamento permanente, preparáronse backends para colocar datos no sistema de ficheiros local mediante OPFS (Origin-Private FileSystem, unha extensión da API de acceso ao sistema de ficheiros, actualmente dispoñible só nos navegadores baseados en WebKit e Chromium) e no almacenamento local baseado no navegador. na API window.localStorage e window.sessionStorage. Cando se usa localStorage/sessionStorage, os datos reflíctese nos almacéns correspondentes nun formato clave/valor, e cando se usa OPFS, hai dúas opcións: simular un FS virtual usando WASMFS e unha implementación separada de sqlite3_vfs, que ofrece unha capa de SQLite VFS baseada. en OPFS.

Para construír SQLite nunha vista WASM, úsase o compilador Emscripten (é suficiente con construír a extensión ext/wasm: "./configure —enable-all; make sqlite3.c; cd ext/wasm; make"). A saída son ficheiros sqlite3.js e sqlite3.wasm, que se poden incluír no teu proxecto JavaScript (exemplo HTML e JavaScript).

Fonte: opennet.ru

Engadir un comentario