Nagdaragdag ang SQLite ng suporta sa WASM para sa paggamit ng DBMS sa isang web browser

Ang mga developer ng SQLite ay bumubuo ng isang proyekto upang ipatupad ang kakayahang mag-compile ng library sa WebAssembly intermediate code, na may kakayahang tumakbo sa isang web browser at angkop para sa pag-aayos ng trabaho sa database mula sa mga web application sa JavaScript. Ang code upang suportahan ang WebAssembly ay idinagdag sa pangunahing repositoryo ng proyekto. Hindi tulad ng WebSQL API, na nakabatay sa SQLite, ang WASM SQLite ay ganap na nakahiwalay sa browser at hindi naaapektuhan ang seguridad nito (nagpasya ang Google na huwag nang gamitin ang suporta para sa WebSQL sa Chrome matapos ang ilang mga kahinaan sa SQLite ay maaaring pinagsamantalahan sa pamamagitan ng WebSQL upang atakehin ang browser) .

Ang layunin ng proyekto ay magbigay ng gumaganang JavaScript framework na kapareho ng functionality sa SQLite API. Ang mga web developer ay binibigyan ng mataas na antas na object-oriented na interface para sa pagtatrabaho sa data sa istilo ng sql.js o Node.js, isang pagbubuklod sa mababang antas ng C API at isang API batay sa mekanismo ng Web Worker, na nagbibigay-daan gumawa ka ng mga asynchronous na tagapangasiwa na isinagawa sa magkahiwalay na mga thread. Upang itago ang mga salimuot ng pag-aayos ng trabaho gamit ang mga stream sa ibabaw ng Web Worker-based na API, ang isang bersyon ng interface ng programa batay sa mekanismo ng Pangako ay binubuo din.

Ang data na iniimbak ng mga web application sa WASM na bersyon ng SQLite ay maaaring ma-localize sa loob ng kasalukuyang session (nawala pagkatapos ng pag-reload ng pahina) o naka-imbak sa panig ng kliyente (naka-save sa pagitan ng mga session). Para sa permanenteng imbakan, inihanda ang mga backend para sa paglalagay ng data sa lokal na file system gamit ang OPFS (Origin-Private FileSystem, isang extension sa File System Access API, na kasalukuyang magagamit lamang sa mga browser batay sa WebKit at Chromium) at sa lokal na imbakan ng browser. sa window.localStorage API at window.sessionStorage. Kapag gumagamit ng localStorage/sessionStorage, makikita ang data sa mga kaukulang store sa isang key/value format, at kapag gumagamit ng OPFS, mayroong dalawang opsyon: pagtulad sa isang virtual na FS gamit ang WASMFS at isang hiwalay na pagpapatupad ng sqlite3_vfs, na nag-aalok ng SQLite VFS layer based sa OPFS.

Upang bumuo ng SQLite sa isang WASM view, ang Emscripten compiler ay ginagamit (ito ay sapat na upang bumuo ng ext/wasm extension: β€œ./configure β€”enable-all; make sqlite3.c; cd ext/wasm; make”). Ang output ay sqlite3.js at sqlite3.wasm file, na maaaring isama sa iyong proyekto sa JavaScript (halimbawa ng HTML at JavaScript).

Pinagmulan: opennet.ru

Magdagdag ng komento