O SQLite agora suporta WASM para usar o SGBD em navegadores web

Os desenvolvedores do SQLite estão avançando no projeto de implementar a capacidade de compilar a biblioteca em código intermediário WebAssembly, que pode ser executado em um navegador web e é adequado para a gestão de bancos de dados a partir de aplicações web escritas em JavaScript. O código para suporte ao WebAssembly foi adicionado ao repositório principal do projeto. Ao contrário da API WebSQL, que se baseia no SQLite, o WASM SQLite é totalmente isolado do navegador e não afeta sua segurança (o Google decidiu abandonar o suporte ao WebSQL no Chrome após várias vulnerabilidades no SQLite que podiam ser exploradas através do WebSQL para atacar o navegador).

O objetivo do projeto é fornecer uma API JavaScript funcionalmente idêntica à API SQLite. Os desenvolvedores web têm acesso a uma interface orientada a objetos de alto nível para trabalhar com dados no estilo sql.js ou Node.js, uma camada sobre a API C de baixo nível e uma API baseada no mecanismo Web Worker, que permite a criação de manipuladores assíncronos executados em threads separadas. Para ocultar as complexidades de operação com threads sobre a API baseada em Web Worker, também está sendo desenvolvido uma versão da interface baseada no mecanismo Promise.

Os dados que as aplicações web salvam na versão WASM do SQLite podem ser localizados dentro da sessão atual (perdidos após o reloading das páginas) ou salvos no lado do cliente (mantidos entre sessões). Para armazenamento persistente, foram preparados back-ends para armazenar dados no sistema de arquivos local utilizando OPFS (Origin-Private FileSystem, uma extensão da API de Acesso ao Sistema de Arquivos, disponível até agora apenas em navegadores baseados em WebKit e Chromium) e em armazenamentos locais no navegador baseados nas APIs window.localStorage e window.sessionStorage. No caso de utilizar localStorage/sessionStorage, os dados são refletidos nos respectivos armazenamentos no formato chave/valor, enquanto ao usar o OPFS, existem duas opções: simulação de um sistema de arquivos virtual com WASMFS e uma implementação separada sqlite3_vfs, oferecendo uma camada SQLite VFS baseada em OPFS.

Para compilar o SQLite em uma representação WASM, foi utilizado o compilador Emscripten (basta compilar a extensão ext/wasm: './configure --enable-all; make sqlite3.c; cd ext/wasm; make'). O resultado são os arquivos sqlite3.js e sqlite3.wasm, que podem ser incluídos em seu projeto JavaScript (exemplo de HTML e JavaScript).

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster