Inkxaso eyongeziweyo ye-SQLite WASM yokusebenzisa i-DBMS kwisikhangeli sewebhu

SQLite

yinkqubo yolawulo lwesiseko sedatha ehambelana ne-ACID, equlethwe kwithala leencwadi elincinci elibhalwe kuC

Los Abaphuhlisi beSQLite baphuhlisa iprojekthi yokuphumeza ukukwazi ukuqulunqa ithala leencwadi libe li ikhowudi yeWebAssembly ephakathi enokuthi iqhutywe kwisikhangeli sewebhu kwaye ilungele ukulungelelanisa umsebenzi kunye nesiseko sedatha kwizicelo zewebhu kulwimi lweJavaScript.

Injongo yeprojekthi kukubonelela ngekhonkco elisebenzayo leJavaScript oko kufana nokusebenza kwiSQLite API. Abaphuhlisi bewebhu babonelelwa nge-interface ejolise kwinto ephezulu yokusebenza kunye nedatha kwisitayela se-sql.js okanye i-Node.js, ukusonga i-API ephantsi ye-C API kunye ne-API esekelwe kwi-Web Worker mechanism evumela ukudala i-asynchronous. abalawuli abasebenza kwimisonto eyahlukeneyo.

Ukufihla ubunzima bokuthunga kwiWeb Worker-based API, Ukwahluka kwe ujongano lwenkqubo olusekwe kwindlela Thembisa.

Idata ezigcina izicelo zewebhu kuguqulelo lwe-WASM yeSQLite inokufumaneka ngaphakathi kwiseshoni yangoku (ilahlekile emva kokulayisha kwakhona kwephepha) okanye iqhubekile kwicala lomxhasi (ziqhubela kuzo zonke iiseshoni).

Ukugcinwa ngokusisigxina, i-backends ilungiselelwe ukubeka idatha kwindlela yefayile yendawo usebenzisa i-OPFS (i-Origin-Private FileSystem, ukwandiswa kweFayile yeFayile yokuFikelela i-API, okwangoku ifumaneka kuphela kwiWebKit kunye neziphequluli ezisekelwe kwiChromium) kunye ne-browser yokugcina indawo esekelwe kwi-window.localStorage kunye ne-window.sessionStorage APIs.

Xa usebenzisa iLocalStore/sesionStorage, idatha ifakwe kwimaphu kwizitshixo ezifanelekileyo/iivenkile zexabiso, kanti xa usebenzisa i-OPFS, kukho iinketho ezimbini: ukulinganisa iFS yenyani usebenzisa iWASMFS, kunye nesqlite3_vfs esahlukileyo uphumezo olunikezela ngeSQLite esekwe kwiVFS umaleko. .

I-Emscripten compiler isetyenziselwa ukwakha iSQLite kumelo lwe-WASM. Iziphumo ziifayile ze-sqlite3.js kunye ne-sqlite3.wasm onokuthi uzibandakanye kwiprojekthi yakho yeJavaScript (isampula yeHTML kunye neJavaScript).

yeenjongo ezithile zale projekthi zikhankanyiwe:

Ngaphandle kwalapho kuphawulwe khona kwizinto ezingezizo iithagethi, bonelela ngokungaphezulu okanye ngaphantsi okupheleleyo kokusonga kweempawu ze-sqlite3 C API, ukuya kuthi ga kwinqanaba lokuba i-WASM ye-parity ye-C ivumela.

  • Bopha umgangatho ophantsi we-sqlite3 API ekufutshane nemveli ngokusemandleni ngokusetyenziswa.
  • Inqanaba eliphezulu le-OO API, efana ne-sql.js kunye nophumezo lwesimbo se-node.js.
  • I-API esekwe kubasebenzi enxibelelana nezi APIs zingentla ngemiyalezo yabasebenzi. Oku kuyilelwe ukuba kusetyenziswe kumsonto oyintloko, kunye nenqanaba elisezantsi le-APIs efakwe kumsonto wabasebenzi, kwaye unxibelelane nabo ngemiyalezo yabasebenzi.
  • I-Promise-based variant ye-API yoMsebenzi efihla ngokupheleleyo imiba yonxibelelwano phakathi kwemisonto yomsebenzisi.
  • Kangangoko kunokwenzeka, xhasa umxhasi-kwicala lokugcinwa okuzingisileyo usebenzisa ii-API ze-JS ezikhoyo. Ngexesha loku kubhalwa, oko kuquka uMthombo weNkqubo yeFayile yaBucala (OPFS) kunye nogcino (lulinganiselwe kakhulu) ngefestile.localStorage kunye .window.sessionStorage ngasemva

Ngokuphathelele iinjongo ezingangqalanga:

  • Ekubeni i-WASM iteknoloji ye-web-centric kunye ne-UTF-8 yinkosi ye-encodings kuloo ndawo, akukho zicwangciso zangoku zokuxhasa i-UTF3-related sqlite16 APIs.
  • Ngelixa inkxaso ye-WASM yangaphandle kwebrowser yamaxesha okuqhuba ixhaphakile, le projekthi okwangoku (emva kowama-2022) igxile kwiithagethi zebrawuza kuphela. Nangona iinkcukacha zokuphunyezwa ezinxulumene newebhu zithatha indawo yokuqala, kwaye i-API's JavaScript components zijolise ngokukodwa kubaxhasi be-browser, imodyuli ephantsi ye-WASM "kufuneka" isebenze kwiindawo ezingekho kwiwebhu ze-WASM.
  • Ukuhambelana namaqonga amadala okanye ama-niche. I-WASM yenzelwe iwebhu yanamhlanje kwaye ifuna amaqonga anamhlanje. Ngokufanayo, iinketho zethala leencwadi ze-sqlite3 eziyehliweyo ziya kususwa kujongano lwe-WASM ngokupheleleyo.

Ikhowudi yenkxaso yeWebAssembly yongezwe kwindawo yokugcina iprojekthi. Ngokungafaniyo neWebSQL API, esekwe kwiSQLite, iWASM SQLite ibekwe yodwa ngokupheleleyo kwisikhangeli kwaye ayichaphazeli ukhuseleko lwayo (uGoogle wagqiba ekubeni alahle inkxaso yeWebSQL kwiChrome emva kobuthathaka obuninzi kwiSQLite obunokusetyenziswa ngeWebSQL ukuhlasela iNavigator. ).

ekugqibeleni ukuba ukhona unomdla wokufunda ngakumbi ngayo, ungajonga iinkcukacha Kule khonkco ilandelayo.


Shiya uluvo lwakho

Idilesi yakho ye email aziyi kupapashwa. ezidingekayo ziphawulwe *

*

*

  1. Inoxanduva lwedatha: I-AB Internet Networks 2008 SL
  2. Injongo yedatha: Ulawulo lwe-SPAM, ulawulo lwezimvo.
  3. Umthetho: Imvume yakho
  4. Unxibelelwano lwedatha: Idatha ayizukuhanjiswa kubantu besithathu ngaphandle koxanduva lomthetho.
  5. Ukugcinwa kweenkcukacha
  6. Amalungelo: Ngalo naliphi na ixesha unganciphisa, uphinde uphinde ucime ulwazi lwakho.