SQLite ntxiv WASM kev txhawb nqa rau kev siv DBMS hauv web browser

SQLite developers tab tom tsim ib qhov project los siv lub peev xwm los sau cov tsev qiv ntawv rau hauv WebAssembly intermediate code, muaj peev xwm khiav hauv lub web browser thiab tsim nyog rau kev teeb tsa ua haujlwm nrog cov ntaub ntawv los ntawm lub vev xaib siv hauv JavaScript. Code los txhawb WebAssembly tau ntxiv rau lub ntsiab qhov project repository. Tsis zoo li WebSQL API, uas yog raws li SQLite, WASM SQLite raug cais tawm ntawm qhov browser thiab tsis cuam tshuam rau nws txoj kev ruaj ntseg (Google txiav txim siab txiav tawm kev txhawb nqa rau WebSQL hauv Chrome tom qab ntau qhov tsis zoo hauv SQLite tuaj yeem siv los ntawm WebSQL los tua lub browser) .

Lub hom phiaj ntawm txoj haujlwm yog los muab lub luag haujlwm JavaScript ua haujlwm uas zoo ib yam hauv kev ua haujlwm rau SQLite API. Cov neeg tsim tawm lub vev xaib tau muab nrog cov khoom lag luam siab-taw qhia kev sib txuas rau kev ua haujlwm nrog cov ntaub ntawv hauv cov qauv ntawm sql.js lossis Node.js, kev sib txuas ntawm qib qis C API thiab API raws li Web Worker mechanism, uas tso cai rau koj los tsim asynchronous handlers tua nyob rau hauv nyias threads. Txhawm rau zais qhov tsis sib xws ntawm kev teeb tsa kev ua haujlwm nrog cov kwj deg nyob rau sab saum toj ntawm Web Worker-based API, ib qho version ntawm qhov kev pab cuam cuam tshuam raws li Kev cog lus mechanism kuj raug tsim.

Cov ntaub ntawv uas cov ntawv thov web khaws cia hauv WASM version ntawm SQLite tuaj yeem nyob hauv qhov kev sib tham tam sim no (poob tom qab nplooj ntawv rov qab) lossis khaws cia rau ntawm tus neeg siv khoom (txuag ntawm ntu). Rau kev khaws cia mus tas li, backends tau npaj rau khaws cia cov ntaub ntawv hauv cov ntaub ntawv hauv zos siv OPFS ( Keeb Kwm-Private FileSystem, kev txuas ntxiv mus rau File System Access API, tam sim no tsuas muaj nyob hauv browsers raws li WebKit thiab Chromium) thiab hauv qhov browser hauv zos cia raws li ntawm windows.localStorage API thiab window.sessionStorage. Thaum siv localStorage/sessionStorage, cov ntaub ntawv yog xav txog hauv cov khw muag khoom sib xws hauv hom tseem ceeb / tus nqi, thiab thaum siv OPFS, muaj ob txoj kev xaiv: simulating virtual FS siv WASMFS thiab ib qho kev siv cais ntawm sqlite3_vfs, muab SQLite VFS txheej raws li ntawm OPFS.

Txhawm rau tsim SQLite rau hauv WASM saib, Emscripten compiler yog siv (nws yog txaus los tsim cov ext/wasm extension: β€œ./configure β€”enable-tag nrho; ua sqlite3.c; cd ext/wasm; ua”). Cov zis yog sqlite3.js thiab sqlite3.wasm cov ntaub ntawv, uas tuaj yeem suav nrog hauv koj qhov project JavaScript (HTML thiab JavaScript piv txwv).

Tau qhov twg los: opennet.ru

Ntxiv ib saib