Gidugang sa SQLite ang suporta sa WASM sa paggamit sa DBMS sa usa ka web browser

Ang mga developer sa SQLite nagpalambo og usa ka proyekto aron ipatuman ang abilidad sa pag-compile sa library ngadto sa WebAssembly intermediate code, nga makahimo sa pagdagan sa usa ka web browser ug angay alang sa pag-organisar sa trabaho uban sa database gikan sa mga web application sa JavaScript. Ang code aron suportahan ang WebAssembly gidugang sa panguna nga repositoryo sa proyekto. Dili sama sa WebSQL API, nga gibase sa SQLite, ang WASM SQLite hingpit nga nahimulag gikan sa browser ug wala makaapekto sa seguridad niini (nakahukom ang Google nga isalikway ang suporta alang sa WebSQL sa Chrome human ang daghang mga kahuyangan sa SQLite mahimong mapahimuslan pinaagi sa WebSQL aron atakehon ang browser) .

Ang katuyoan sa proyekto mao ang paghatag usa ka nagtrabaho nga JavaScript framework nga parehas sa pagpaandar sa SQLite API. Ang mga web developers gihatagan og taas nga lebel nga object-oriented interface alang sa pagtrabaho uban sa datos sa estilo sa sql.js o Node.js, usa ka pagbugkos sa ubos nga lebel nga C API ug usa ka API base sa mekanismo sa Web Worker, nga nagtugot ikaw sa paghimo sa mga asynchronous handler nga gipatuman sa lain nga mga hilo. Aron matago ang mga kakuti sa pag-organisar sa trabaho nga adunay mga sapa sa ibabaw sa Web Worker-based API, usa ka bersyon sa interface sa programa nga gibase sa mekanismo sa Saad ang gihimo usab.

Ang datos nga gitipigan sa mga web application sa WASM nga bersyon sa SQLite mahimong ma-localize sulod sa kasamtangan nga sesyon (nawala human sa pag-reload sa panid) o gitipigan sa kilid sa kliyente (gitipigan tali sa mga sesyon). Alang sa permanente nga pagtipig, ang mga backend giandam alang sa pagbutang sa datos sa lokal nga sistema sa file gamit ang OPFS (Origin-Private FileSystem, usa ka extension sa File System Access API, nga karon anaa lamang sa mga browser nga gibase sa WebKit ug Chromium) ug sa lokal nga storage sa browser. sa window.localStorage API ug window.sessionStorage. Kung gigamit ang localStorage/sessionStorage, ang datos makita sa katugbang nga mga tindahan sa usa ka yawe/bili nga pormat, ug kung gamiton ang OPFS, adunay duha ka kapilian: pag-simulate sa usa ka virtual nga FS gamit ang WASMFS ug usa ka bulag nga pagpatuman sa sqlite3_vfs, nga nagtanyag usa ka SQLite VFS layer nga gibase. sa OPFS.

Sa paghimo sa SQLite ngadto sa usa ka WASM nga panglantaw, ang Emscripten compiler gigamit (kini igo na sa pagtukod sa ext/wasm extension: β€œ./configure β€”enable-all; make sqlite3.c; cd ext/wasm; make”). Ang output mao ang sqlite3.js ug sqlite3.wasm files, nga mahimong iapil sa imong JavaScript project (HTML ug JavaScript example).

Source: opennet.ru

Idugang sa usa ka comment