Pievienots SQLite WASM atbalsts, lai izmantotu DBVS tīmekļa pārlūkprogrammā

SQLite

ir ar ACID saderīga relāciju datu bāzes pārvaldības sistēma, kas atrodas salīdzinoši nelielā bibliotēkā, kas rakstīta C valodā

L SQLite izstrādātāji izstrādā projektu, ko īstenot spēja apkopot bibliotēku a starpposma WebAssembly kods kuru var palaist tīmekļa pārlūkprogrammā un ir piemērots darba organizēšanai ar datubāzi no tīmekļa lietojumprogrammām JavaScript valodā.

Mērķis projekta ir nodrošināt funkcionālu JavaScript saiti kas pēc funkcionalitātes ir identisks SQLite API. Tīmekļa izstrādātājiem tiek nodrošināts augsta līmeņa objektorientēts interfeiss darbam ar datiem sql.js vai Node.js stilā, iesaiņojot zema līmeņa C API un API, pamatojoties uz Web Worker mehānismu, kas ļauj izveidot asinhronus kontrolieri, kas darbojas uz atsevišķiem pavedieniem.

Lai paslēptu sarežģījumus, kas saistīti ar pavedienu izveidošanu, izmantojot tīmekļa darbinieku API, Variants no programmēšanas saskarne, kuras pamatā ir mehānisms Solījums

Dati, ko tīmekļa lietojumprogrammas glabā SQLite WASM versijā, var atrasties pašreizējā sesijā (pazaudēti pēc lapas atkārtotas ielādes) vai saglabāties klienta pusē (pastāvēt visās sesijās).

Pastāvīgai glabāšanai aizmugursistēmas ir sagatavotas datu ievietošanai vietējā failu sistēmā izmantojot OPFS (Origin-Private FileSystem, failu sistēmas piekļuves API paplašinājums, pašlaik pieejams tikai WebKit un Chromium pārlūkprogrammās) un pārlūkprogrammas lokālo krātuvi, kuras pamatā ir window.localStorage un window.sessionStorage API.

Izmantojot localStorage/sessionStorage, dati tiek kartēti uz atbilstošajiem atslēgu/vērtību krātuvēm, savukārt, izmantojot OPFS, ir divas iespējas: simulēt virtuālo FS, izmantojot WASMFS, un atsevišķu sqlite3_vfs implementāciju, kas piedāvā SQLite balstītu VFS slāni. .

Emscripten kompilators tiek izmantots, lai izveidotu SQLite WASM attēlojumā. Rezultāts ir sqlite3.js un sqlite3.wasm faili, kurus varat iekļaut savā JavaScript projektā (HTML un JavaScript paraugs).

konkrētajiem mērķiem no šī projekta ir minēti:

Izņemot gadījumus, kas norādīti nemērķos, nodrošiniet vairāk vai mazāk pilnīgu sqlite3 C API līdzekļu iesaiņojumu, ciktāl to atļauj WASM līdzekļu paritāte ar C. Faktiski nodrošiniet vismaz šādas API .

  • Saistīt zema līmeņa sqlite3 API, kas lietošanas ziņā ir pēc iespējas tuvāks vietējai.
  • Augstāka līmeņa OO API, vairāk līdzīgs sql.js un node.js stila ieviešanai.
  • Uz darbinieku balstīta API, kas sazinās ar iepriekš minētajām API, izmantojot darbinieku ziņojumus. Tas ir paredzēts lietošanai galvenajā pavedienā ar zemāka līmeņa API, kas ir instalēti darbinieka pavedienā, un sazināties ar tiem, izmantojot darbinieku ziņojumus.
  • Uz solījumu balstīts Worker API variants, kas pilnībā slēpj lietotāja starppavedienu komunikācijas aspektus.
  • Cik vien iespējams, atbalstiet klienta puses pastāvīgo krātuvi, izmantojot pieejamās JS API. Šīs rakstīšanas laikā tas ietver avota privāto failu sistēmu (OPFS) un (ļoti ierobežotu) krātuvi, izmantojot loga.localStorage un .window.sessionStorage aizmugurprogrammas.

Attiecībā nekonkrēti mērķi:

  • Tā kā WASM ir uz tīmekli orientēta tehnoloģija un UTF-8 ir kodējumu karalis šajā jomā, pašlaik nav plānots atbalstīt ar UTF3 saistītus sqlite16 API.
  • Lai gan atbalsts ārpus pārlūkprogrammas WASM izpildlaikiem ir plaši izplatīts, šis projekts pašlaik (2022. gada beigās) ir vērsts tikai uz pārlūkprogrammas mērķiem. Lai gan ar tīmekli saistītai ieviešanas informācijai ir priekšroka un API JavaScript komponenti ir īpaši vērsti uz pārlūkprogrammas klientiem, zemāka līmeņa WASM modulim "vajadzētu" darboties ārpus tīmekļa WASM vidēs.
  • Saderība ar vecām vai nišas platformām. WASM ir paredzēts mūsdienīgam tīmeklim, un tam ir nepieciešamas modernas platformas. Tāpat novecojušās sqlite3 bibliotēkas opcijas tiks pilnībā noņemtas no WASM saskarnes.

WebAssembly atbalsta kods ir pievienots projekta galvenajai krātuvei. Atšķirībā no WebSQL API, kuras pamatā ir SQLite, WASM SQLite ir pilnībā izolēta no pārlūkprogrammas un neietekmē tās drošību (Google nolēma pārtraukt WebSQL atbalstu pārlūkā Chrome pēc vairākām SQLite ievainojamībām, kuras varētu izmantot, izmantojot WebSQL, lai uzbruktu navigatoram. ).

beidzot, ja esi interesējas par to uzzināt vairāk, varat pārbaudīt informāciju Šajā saitē.


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: AB Internet Networks 2008 SL
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.