SQLite inaongeza usaidizi wa WASM wa kutumia DBMS kwenye kivinjari cha wavuti

Wasanidi wa SQLite wanaunda mradi wa kutekeleza uwezo wa kukusanya maktaba katika msimbo wa kati wa WebAssembly, wenye uwezo wa kufanya kazi katika kivinjari cha wavuti na unaofaa kwa ajili ya kupanga kazi na hifadhidata kutoka kwa programu za wavuti katika JavaScript. Msimbo wa kusaidia WebAssembly umeongezwa kwenye hazina kuu ya mradi. Tofauti na API ya WebSQL, ambayo inategemea SQLite, WASM SQLite imetengwa kabisa na kivinjari na haiathiri usalama wake (Google iliamua kuacha kutumia WebSQL katika Chrome baada ya udhaifu kadhaa katika SQLite kutumiwa kupitia WebSQL kushambulia kivinjari) .

Lengo la mradi ni kutoa mfumo wa JavaScript unaofanya kazi ambao unafanana katika utendakazi na API ya SQLite. Wasanidi wa wavuti wamepewa kiolesura cha hali ya juu chenye mwelekeo wa kitu kwa ajili ya kufanya kazi na data katika mtindo wa sql.js au Node.js, unaofungamana na C API ya kiwango cha chini na API kulingana na utaratibu wa Web Worker, ambayo inaruhusu. kuunda vidhibiti vya asynchronous vilivyotekelezwa kwa nyuzi tofauti. Ili kuficha ugumu wa kupanga kazi na mitiririko juu ya API inayotegemea Mfanyakazi wa Wavuti, toleo la kiolesura cha programu kulingana na utaratibu wa Ahadi pia linatengenezwa.

Data ambayo programu za wavuti huhifadhi katika toleo la WASM la SQLite inaweza kujanibishwa ndani ya kipindi cha sasa (kupotea baada ya upakiaji upya wa ukurasa) au kuhifadhiwa kwa upande wa mteja (kuhifadhiwa kati ya vipindi). Kwa hifadhi ya kudumu, viambajengo vya nyuma vimetayarishwa kwa ajili ya kuweka data katika mfumo wa faili wa ndani kwa kutumia OPFS (Origin-Private FileSystem, kiendelezi cha API ya Ufikiaji wa Mfumo wa Faili, ambayo kwa sasa inapatikana tu katika vivinjari kulingana na WebKit na Chromium) na katika hifadhi ya kivinjari cha ndani kulingana na kwenye window.localStorage API na window.sessionStorage. Wakati wa kutumia localStorage/sessionStorage, data inaonekana katika maduka sambamba katika umbizo la ufunguo/thamani, na wakati wa kutumia OPFS, kuna chaguzi mbili: kuiga FS ya kawaida kwa kutumia WASMFS na utekelezaji tofauti wa sqlite3_vfs, ikitoa safu ya SQLite VFS msingi. kwenye OPFS.

Ili kuunda SQLite katika mwonekano wa WASM, mkusanyaji wa Emscripten hutumiwa (inatosha kujenga kiendelezi cha ext/wasm: "./configure -enable-all; make sqlite3.c; cd ext/wasm; make"). Matokeo ni sqlite3.js na faili za sqlite3.wasm, ambazo zinaweza kujumuishwa katika mradi wako wa JavaScript (mfano wa HTML na JavaScript).

Chanzo: opennet.ru

Kuongeza maoni