SQLite imawonjezera thandizo la WASM pakugwiritsa ntchito DBMS mu msakatuli

Madivelopa a SQLite akupanga pulojekiti yoti agwiritse ntchito kuthekera kophatikiza laibulaleyo kukhala code yapakatikati ya WebAssembly yomwe imatha kugwira ntchito pasakatuli ndipo ndiyoyenera kukonza ntchito ndi nkhokwe kuchokera pamawebusayiti achilankhulo cha JavaScript. Khodi ya chithandizo cha WebAssembly yawonjezedwa kumalo osungirako ntchito. Mosiyana ndi WebSQL API, yomwe imachokera ku SQLite, WASM SQLite ili kutali ndi msakatuli ndipo sizikhudza chitetezo chake (Google inaganiza zosiya chithandizo cha WebSQL mu Chrome pambuyo pa zovuta zingapo mu SQLite zomwe zingagwiritsidwe ntchito kudzera pa WebSQL kuti ziwononge osatsegula. ).

Cholinga cha polojekitiyi ndikupereka chomangira cha JavaScript chomwe chimagwira ntchito mofanana ndi SQLite API. Opanga mawebusayiti amapatsidwa mawonekedwe apamwamba kwambiri okhudzana ndi chinthu kuti athe kugwira ntchito ndi data mumayendedwe a sql.js kapena Node.js, kukulunga pa C API yotsika, ndi API yotengera makina a Web Worker omwe amakulolani. kupanga ma asynchronous handlers omwe amayenda pa ulusi wosiyana. Kubisa zovuta zakukonzekera ntchito ndi ulusi pamwamba pa Web Worker-based API, mawonekedwe osinthika otengera Promise makina akupangidwanso.

Zambiri zomwe mapulogalamu a pa intaneti amasunga mu mtundu wa WASM wa SQLite zitha kupezeka mkati mwa gawo lapano (lotayika pambuyo pa kutsitsanso masamba) kapena mbali ya kasitomala inapitilira (kupitilira pakati pa magawo). Kuti musungidwe mosalekeza, ma backends adakonzedwa kuti akhazikitse deta pamafayilo akumaloko pogwiritsa ntchito OPFS (Origin-Private FileSystem, yowonjezera ku File System Access API, yomwe ikupezeka pakali pano m'masakatuli otengera WebKit ndi Chromium) komanso m'malo osungira asakatuli akomweko. zochokera pawindo.localStorage API ndi window.sessionStorage. Mukamagwiritsa ntchito localStorage/sessionStorage, deta imayikidwa kumalo osungirako makiyi/zamtengo wapatali, pamene mukugwiritsa ntchito OPFS, pali njira ziwiri: kuyerekezera mawonekedwe a fayilo pogwiritsa ntchito WASMFS, ndi kukhazikitsidwa kwa sqlite3_vfs komwe kumapereka gawo la SQLite VFS la OPFS. .

Kuti mupange SQLite mu chiwonetsero cha WASM, compiler ya Emscripten imagwiritsidwa ntchito (ndikokwanira kupanga ext/wasm extension: "./configure --enable-all; make sqlite3.c; cd ext/wasm; make"). Zotsatira zake ndi sqlite3.js ndi mafayilo a sqlite3.wasm omwe mungaphatikizepo mu JavaScript yanu (chitsanzo cha HTML ndi JavaScript).

Source: opennet.ru

Kuwonjezera ndemanga