SQLite nambahake dhukungan WASM kanggo nggunakake DBMS ing browser web

Pangembang SQLite ngembangake proyek kanggo ngleksanakake kemampuan kanggo ngumpulake perpustakaan menyang kode perantara WebAssembly, sing bisa mlaku ing browser web lan cocok kanggo ngatur karya karo database saka aplikasi web ing JavaScript. Kode kanggo ndhukung WebAssembly wis ditambahake menyang repositori proyek utama. Ora kaya API WebSQL, sing adhedhasar SQLite, WASM SQLite wis diisolasi saka browser lan ora mengaruhi keamanane (Google mutusake kanggo nolak dhukungan kanggo WebSQL ing Chrome sawise sawetara kerentanan ing SQLite bisa dieksploitasi liwat WebSQL kanggo nyerang browser) .

Tujuan proyek kasebut yaiku nyedhiyakake kerangka kerja JavaScript sing padha karo fungsionalitas SQLite API. Pangembang web diwenehake karo antarmuka berorientasi obyek tingkat dhuwur kanggo nggarap data kanthi gaya sql.js utawa Node.js, ikatan liwat C API tingkat rendah lan API adhedhasar mekanisme Web Worker, sing ngidini sampeyan nggawe panangan asinkron sing dieksekusi ing benang sing kapisah. Kanggo ndhelikake seluk-beluk ngatur karya karo stream ing ndhuwur API adhedhasar Web Worker, versi antarmuka program adhedhasar mekanisme Janji uga dikembangakΓ©.

Data sing disimpen aplikasi web ing versi WASM saka SQLite bisa dilokalisasi ing sesi saiki (ilang sawise kaca reload) utawa disimpen ing sisih klien (disimpen ing antarane sesi). Kanggo panyimpenan permanen, backend wis disiapake kanggo nempatake data ing sistem file lokal nggunakake OPFS (Origin-Private FileSystem, extension kanggo File System Access API, saiki mung kasedhiya ing browser adhedhasar WebKit lan Chromium) lan ing panyimpenan browser lokal. ing window.localStorage API lan window.sessionStorage. Nalika nggunakake localStorage / sessionStorage, data dibayangke ing toko sing cocog ing format tombol / nilai, lan nalika nggunakake OPFS, ana rong pilihan: simulating FS virtual nggunakake WASMFS lan implementasine kapisah saka sqlite3_vfs, nawakake lapisan SQLite VFS adhedhasar. ing OPFS.

Kanggo mbangun SQLite menyang tampilan WASM, kompiler Emscripten digunakake (cukup kanggo mbangun ekstensi ext/wasm: "./configure β€”enable-all; make sqlite3.c; cd ext/wasm; make"). Output yaiku file sqlite3.js lan sqlite3.wasm, sing bisa dilebokake ing proyek JavaScript sampeyan (umpamane HTML lan JavaScript).

Source: opennet.ru

Add a comment