În SQLite a fost adăugată suportul pentru WASM pentru utilizarea SGBD-ului în browserul web

Dezvoltatorii SQLite progresează cu proiectul de implementare a posibilității de compilare a bibliotecii în cod intermediar WebAssembly, capabil să ruleze în browserul web și potrivit pentru organizarea lucrului cu baze de date din aplicații web în limbajul JavaScript. Codul pentru suportul WebAssembly a fost adăugat în depozitul principal al proiectului. Spre deosebire de API-ul WebSQL, pe baza căruia se bazează SQLite, WASM SQLite este complet izolat de browser și nu afectează securitatea acestuia (Google a decis să renunțe la suportul WebSQL în Chrome după câteva vulnerabilități în SQLite care puteau fi exploatate prin WebSQL pentru a ataca browserul).

Obiectivul proiectului este furnizarea unei legături JavaScript funcțional identice cu API-ul SQLite. Dezvoltatorilor web li se oferă o interfață de programare orientată pe obiect la un nivel înalt pentru a lucra cu date în stilul sql.js sau Node.js, o legătură peste API-ul C de nivel joase și API-ul bazat pe mecanismul Web Worker, care permite crearea de gestionări asincrone ce se execută în fire separate. Pentru a ascunde subtilitățile organizării lucrului cu firele de execuție deasupra API-ului bazat pe Web Worker, se dezvolta de asemenea o variantă a interfeței software bazată pe mecanismul Promise.

Datele pe care aplicațiile web le salvează în versiunea WASM a SQLite pot fi localizate în cadrul sesiunii curente (se pierd după reîncărcarea paginilor) sau păstrate pe partea clientului (se păstrează între sesiuni). Pentru stocarea permanentă, au fost pregătite backend-uri pentru plasarea datelor în sistemul de fișiere local prin intermediul OPFS (Origin-Private FileSystem, o extensie a API-ului File System Access, disponibilă momentan doar în browserele bazate pe WebKit și Chromium) și în magazinele locale de browser bazate pe API-ul window.localStorage și window.sessionStorage. În cazul utilizării localStorage/sessionStorage, datele sunt reflectate în magazinele corespunzătoare în formatul cheie/valoare, iar în cazul utilizării OPFS sunt prevăzute două variante: simularea unui sistem de fișiere virtual prin intermediul WASMFS și o implementare separată sqlite3_vfs, care oferă un strat SQLite VFS bazat pe OPFS.

Pentru a construi SQLite în format WASM, a fost folosit compilatorul Emscripten (este suficient să construiți extensia ext/wasm: "./configure --enable-all; make sqlite3.c; cd ext/wasm; make"). La ieșire se generează fișierele sqlite3.js și sqlite3.wasm, care pot fi incluse în proiectul dvs. JavaScript (exemplu de HTML și JavaScript).

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster