SQLite e eketsa tšehetso ea WASM bakeng sa ho sebelisa DBMS ho sebatli sa marang-rang

Bahlahisi ba SQLite ba nts'etsapele morero oa ho kenya ts'ebetsong bokhoni ba ho bokella laebrari hore e be khoutu ea mahareng ea WebAssembly, e khonang ho sebetsa ka har'a sebatli sa marang-rang mme e loketse ho hlophisa mosebetsi ka database ho tsoa lits'ebetsong tsa webo ho JavaScript. Khoutu ea ho tšehetsa WebAssembly e kentsoe polokelong e kholo ea projeke. Ho fapana le WebSQL API, e ipapisitseng le SQLite, WASM SQLite e qheletsoe ka thoko ho sebatli mme ha e ame ts'ireletso ea eona (Google e nkile qeto ea ho nyenyefatsa ts'ehetso ea WebSQL ho Chrome kamora hore bofokoli bo bongata ho SQLite bo ka sebelisoa hampe ka WebSQL ho hlasela sebatli) .

Sepheo sa morero ke ho fana ka moralo o sebetsang oa JavaScript o ts'oanang ka ts'ebetso ho SQLite API. Basebelisi ba sebaka sa Marang-rang ba fuoa sebopeho sa maemo a holimo se shebaneng le ntho bakeng sa ho sebetsa le data ka mokhoa oa sql.js kapa Node.js, e tlamang C API ea boemo bo tlase le API e ipapisitseng le mochini oa Web Worker, o lumellang. u etsa li-handers tse sa tšoaneng tse entsoeng ka likhoele tse arohaneng. Ho pata mathata a ho hlophisa mosebetsi ka melapo holim'a Web Worker-based API, ho ntse ho ntlafatsoa mofuta oa sebopeho sa lenaneo se thehiloeng ho Promise mechanism.

Lintlha tseo lits'ebetso tsa marang-rang li li bolokang ho mofuta oa WASM oa SQLite li ka fumaneha ka har'a seshene ea hajoale (e lahlehile ka mor'a ho kenya leqephe hape) kapa ea bolokoa ka lehlakoreng la bareki (e bolokiloe lipakeng tsa linako). Bakeng sa polokelo ea ka ho sa feleng, li-backends li lokiselitsoe ho beha datha tsamaisong ea faele ea lehae ho sebelisa OPFS (Origin-Private FileSystem, katoloso ea File System Access API, e fumanehang feela ho libatli tse thehiloeng ho WebKit le Chromium) le polokelong ea sebatli ea lehae e thehiloeng. fensetereng.LocalStorage API le fensetere.sessionStorage. Ha u sebelisa LocalStorage/sessionStorage, data e bonts'oa mabenkeleng a ts'oanang ka sebopeho sa senotlolo / boleng, 'me ha u sebelisa OPFS, ho na le likhetho tse peli: ho etsisa FS ea sebele e sebelisang WASMFS le ts'ebetsong e fapaneng ea sqlite3_vfs, e fanang ka SQLite VFS layer e thehiloeng. ho OPFS.

Ho haha ​​SQLite ponong ea WASM, ho sebelisoa moqapi oa Emscripten (ho lekane ho haha ​​​​ext/wasm extension: "./configure -enable-all; make sqlite3.c; cd ext/wasm; make"). Sephetho ke sqlite3.js le lifaele tsa sqlite3.wasm, tse ka kenyelletsoang morerong oa hau oa JavaScript (mohlala oa HTML le JavaScript).

Source: opennet.ru

Eketsa ka tlhaloso