I-SQLite yengeza usekelo lwe-WASM lokusebenzisa i-DBMS kusiphequluli sewebhu

Onjiniyela be-SQLite bakha iphrojekthi yokusebenzisa ikhono lokuhlanganisa umtapo wezincwadi ube ikhodi ye-WebAssembly emaphakathi engasebenza kusiphequluli sewebhu futhi elungele ukuhlela umsebenzi ngesizindalwazi kusuka kuzinhlelo zokusebenza zewebhu ngolimi lwe-JavaScript. Ikhodi yosekelo lwe-WebAssembly yengezwe endaweni yokugcina iphrojekthi. Ngokungafani ne-WebSQL API, esekelwe ku-SQLite, i-WASM SQLite ihlukaniswe ngokuphelele nesiphequluli futhi akuthinti ukuphepha kwaso (i-Google inqume ukulahla ukusekelwa kwe-WebSQL ku-Chrome ngemva kokulimala okuningana ku-SQLite okungase kusetshenziswe nge-WebSQL ukuze kuhlaselwe isiphequluli. ).

Umgomo wephrojekthi ukuhlinzeka ngokubophezela kwe-JavaScript okusebenzayo okufanayo ekusebenzeni kwe-SQLite API. Abathuthukisi bewebhu banikezwa isixhumi esibonakalayo esisezingeni eliphezulu esigxile entweni ukuze sisebenze nedatha ngesitayela se-sql.js noma i-Node.js, esonga nge-C API yezinga eliphansi, kanye ne-API esekelwe kumshini we-Web Worker okuvumela ukuthi ukudala izibambi ezingavumelaniyo ezisebenza emicu ehlukene. Ukuze kufihlwe ubunkimbinkimbi bokuhlela umsebenzi ngochungechunge ngaphezulu kwe-Web Worker-based API, okuhlukile kohlelo lokusebenzisana olususelwe kumshini wesithembiso nakho kuyathuthukiswa.

Idatha egcinwa izinhlelo zokusebenza zewebhu kunguqulo ye-WASM ye-SQLite ingenziwa eyasendaweni phakathi neseshini yamanje (ilahlekile ngemva kokulayishwa kabusha kwekhasi) noma uhlangothi lweklayenti luphikile (lwaqhubeka phakathi kwezikhathi). Ukuze uthole isitoreji esiqhubekayo, ama-backends alungiselelwe ukubeka idatha kusistimu yefayela yendawo kusetshenziswa i-OPFS (Origin-Private FileSystem, isandiso se-File System Access API, etholakala kuze kube manje kuphela kuziphequluli ezisekelwe ku-WebKit ne-Chromium) nasezindaweni zokugcina zesiphequluli sendawo. ngokusekelwe ku-window.localStorage API kanye ne-window.sessionStorage. Lapho usebenzisa i-LocalStorage/sessionStorage, idatha ifakwe kumephu ezitolo ezifanele zokhiye/inani, kuyilapho uma usebenzisa i-OPFS, kukhona izinketho ezimbili: ukulingisa isistimu yefayela ebonakalayo usebenzisa i-WASMFS, kanye nokusetshenziswa okuhlukile kwe-sqlite3_vfs okunikeza isendlalelo se-SQLite VFS esisekelwe ku-OPFS. .

Ukwakha i-SQLite ibe isethulo se-WASM, kusetshenziswe i-Emscripten compiler (yanele ukwakha isandiso se-ext/wasm: "./configure --enable-all; make sqlite3.c; cd ext/wasm; make"). Okukhiphayo kungamafayela e-sqlite3.js kanye ne-sqlite3.wasm ongawafaka kuphrojekthi yakho ye-JavaScript (isibonelo se-HTML ne-JavaScript).

Source: opennet.ru

Engeza amazwana