SQLite lisää WASM-tuen DBMS:n käyttämiseen verkkoselaimessa

SQLite-kehittäjät kehittävät projektia toteuttaakseen kyvyn kääntää kirjasto WebAssembly-välikoodiksi, joka pystyy toimimaan verkkoselaimessa ja soveltuu tietokannan työskentelyn järjestämiseen web-sovelluksista JavaScriptissä. WebAssemblya tukeva koodi on lisätty pääprojektin arkistoon. Toisin kuin SQLiteen perustuva WebSQL API, WASM SQLite on täysin eristetty selaimesta eikä vaikuta sen turvallisuuteen (Google päätti lopettaa WebSQL:n tuen Chromessa, koska useita SQLiten haavoittuvuuksia voitiin hyödyntää WebSQL:n kautta selaimen hyökkäämiseen) .

Projektin tavoitteena on tarjota toimiva JavaScript-kehys, joka on toiminnaltaan identtinen SQLite API:n kanssa. Web-kehittäjille tarjotaan korkean tason oliokäyttöliittymä sql.js- tai Node.js-tyylisten tietojen käsittelyä varten, sidos matalan tason C API:n yli ja Web Worker -mekanismiin perustuva API, joka mahdollistaa voit luoda asynkronisia käsittelijöitä, jotka suoritetaan erillisissä säikeissä. Web Worker -pohjaisen API:n päällä olevien streamien kanssa tehtävän työn organisoinnin monimutkaisuuden piilottamiseksi kehitetään myös Promise-mekanismiin perustuvaa versiota ohjelman käyttöliittymästä.

Tieto, jonka verkkosovellukset tallentavat SQLiten WASM-versioon, voidaan lokalisoida nykyisen istunnon sisällä (menettää sivun uudelleenlatauksen jälkeen) tai tallentaa asiakaspuolelle (tallentaa istuntojen välillä). Pysyvää tallennusta varten taustajärjestelmät on valmisteltu sijoittamaan tietoja paikalliseen tiedostojärjestelmään OPFS:n (Origin-Private FileSystem, File System Access API:n laajennus, tällä hetkellä saatavilla vain WebKitiin ja Chromiumiin perustuvissa selaimissa) ja paikalliseen selainmuistiin. windows.localStorage API:ssa ja window.sessionStoragessa. LocalStorage/sessionStoragea käytettäessä tiedot heijastuvat vastaaviin varastoihin avain/arvo-muodossa, ja OPFS:ää käytettäessä on kaksi vaihtoehtoa: virtuaalisen FS:n simulointi WASMFS:n avulla ja erillinen sqlite3_vfs-toteutus, joka tarjoaa SQLite VFS -kerrospohjaisen. OPFS:ssä.

SQLiten rakentamiseen WASM-näkymään käytetään Emscripten-kääntäjää (riittää rakentaa ext/wasm-laajennus: "./configure —enable-all; make sqlite3.c; cd ext/wasm; make"). Tulosteena ovat sqlite3.js- ja sqlite3.wasm-tiedostot, jotka voidaan sisällyttää JavaScript-projektiisi (HTML- ja JavaScript-esimerkki).

Lähde: opennet.ru

Lisää kommentti