Lisätty SQLite WASM -tuki DBMS:n käyttämiseen verkkoselaimessa

SQLite

on ACID-yhteensopiva relaatiotietokannan hallintajärjestelmä, joka sisältyy suhteellisen pieneen C-kielellä kirjoitettuun kirjastoon

Los SQLite-kehittäjät kehittävät projektia toteutettavaksi kyky koota kirjasto a WebAssembly-välikoodi joka on ajettavissa verkkoselaimella ja sopii tietokannan työn organisointiin JavaScript-kielisistä web-sovelluksista.

Tavoite projektin on tarjota toimiva JavaScript-linkki joka on toiminnaltaan identtinen SQLite API:n kanssa. Web-kehittäjille tarjotaan korkean tason oliokäyttöliittymä sql.js- tai Node.js-tyylisten tietojen kanssa työskentelemiseen, matalan tason C API:n ja Web Worker -mekanismiin perustuvan API:n käärimiseen, joka mahdollistaa asynkronisen luomisen. ohjaimet, jotka toimivat erillisissä säikeissä.

Voit piilottaa Web Worker -pohjaisen sovellusliittymän ketjutuksen monimutkaisuuden Variantti mekanismiin perustuva ohjelmointirajapinta Lupaus.

Verkkosovellusten SQLiten WASM-versioon tallentamat tiedot voivat sijaita nykyisessä istunnossa (menetetty sivun uudelleenlatauksen jälkeen) tai säilyä asiakaspuolella (pysyä istuntojen aikana).

Pysyvää tallennusta varten taustajärjestelmät on valmistettu sijoittamaan tiedot paikalliseen tiedostojärjestelmään käyttäen OPFS:ää (Origin-Private FileSystem, File System Access API:n laajennus, tällä hetkellä saatavilla vain WebKit- ja Chromium-pohjaisissa selaimissa) ja selaimen paikallista tallennustilaa, joka perustuu windows.localStorage- ja window.sessionStorage-sovellusliittymiin.

LocalStorage/sessionStoragea käytettäessä tiedot kartoitetaan asianmukaisiin avain/arvovarastoihin, kun taas OPFS:ää käytettäessä on kaksi vaihtoehtoa: virtuaalisen FS:n simulointi WASMFS:n avulla ja erillinen sqlite3_vfs-toteutus, joka tarjoaa SQLite-pohjaisen VFS-kerroksen. .

Emscripten-kääntäjää käytetään SQLiten rakentamiseen WASM-esitykseen. Tuloksena on sqlite3.js- ja sqlite3.wasm-tiedostot, jotka voit sisällyttää JavaScript-projektiisi (HTML- ja JavaScript-esimerkki).

erityistavoitteista tästä projektista mainitaan:

Ellei ei-kohdissa ole mainittu, tarjoa sqlite3 C API:lle enemmän tai vähemmän täydellinen ominaisuuksien kääre siinä määrin kuin WASM:n ominaisuuspariteetti C:n kanssa sallii. Käytä itse asiassa ainakin seuraavat API:t .

  • Sido matalan tason sqlite3 API, joka on käytön suhteen mahdollisimman lähellä alkuperäistä.
  • Korkeamman tason OO API, enemmän kuin sql.js- ja node.js-tyylitoteutukset.
  • Työntekijäpohjainen API, joka kommunikoi yllä olevien API:iden kanssa työntekijäviestien kautta. Tämä on suunniteltu käytettäväksi pääsäikeessä, ja alemman tason API:t on asennettu työntekijäsäikeeseen, ja kommunikoimaan heidän kanssaan työntekijöiden viestien kautta.
  • Promise-pohjainen Worker API -versio, joka piilottaa täysin käyttäjän säikeiden väliset viestintänäkökohdat.
  • Tue mahdollisuuksien mukaan asiakaspuolen jatkuvaa tallennusta käytettävissä olevien JS-sovellusliittymien avulla. Tätä kirjoitettaessa se sisältää Source Private File System (OPFS) ja (erittäin rajoitetun) tallennustilan windows.localStorage- ja .window.sessionStorage-taustaohjelmien kautta

kuten epäspesifiset tavoitteet:

  • Koska WASM on verkkokeskeinen tekniikka ja UTF-8 on koodausten kuningas tällä alueella, tällä hetkellä ei ole suunnitteilla tukea UTF3:een liittyviä sqlite16-sovellusliittymiä.
  • Vaikka selaimen ulkopuolisten WASM-ajoaikojen tuki on laajalle levinnyt, tämä projekti keskittyy tällä hetkellä (vuoden 2022 lopulla) vain selainkohteisiin. Vaikka verkkoon liittyvät toteutustiedot ovat etusijalla ja API:n JavaScript-komponentit keskittyvät erityisesti selainasiakkaisiin, alemman tason WASM-moduulin "pitäisi" toimia muissa kuin web-WASM-ympäristöissä.
  • Yhteensopivuus vanhojen tai niche-alustojen kanssa. WASM on suunniteltu nykyaikaiselle webille ja vaatii nykyaikaiset alustat. Samoin vanhentuneet sqlite3-kirjastoasetukset poistetaan WASM-liittymästä kokonaan.

WebAssembly-tuen koodi on lisätty projektin päätietovarastoon. 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 useiden SQLiten haavoittuvuuksien jälkeen, joita WebSQL voitiin hyödyntää hyökätäkseen Navigaattoriin ).

vihdoin jos olet kiinnostunut oppimaan siitä lisää, voit tarkistaa yksityiskohdat Seuraavassa linkissä.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastaa tiedoista: AB Internet Networks 2008 SL
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.