SQLite nambihan dukungan WASM pikeun ngagunakeun DBMS dina browser wéb

Pangembang SQLite nuju ngembangkeun hiji proyék pikeun nerapkeun kamampuhan pikeun compile perpustakaan kana kode panganteur WebAssembly, sanggup ngajalankeun dina web browser tur cocog pikeun ngatur gawé kalawan database tina aplikasi wéb dina JavaScript. Kode pikeun ngarojong WebAssembly geus ditambahkeun kana Repository proyék utama. Beda sareng API WebSQL, anu didasarkeun kana SQLite, WASM SQLite parantos terasing tina browser sareng henteu mangaruhan kaamananna (Google mutuskeun pikeun ngaleungitkeun dukungan pikeun WebSQL dina Chrome saatos sababaraha kerentanan dina SQLite tiasa dieksploitasi ngalangkungan WebSQL pikeun nyerang browser) .

Tujuan proyék nyaéta pikeun nyayogikeun kerangka kerja JavaScript anu idéntik dina fungsionalitas sareng API SQLite. Pangembang wéb disayogikeun sareng antarmuka berorientasi obyék tingkat luhur pikeun damel sareng data dina gaya sql.js atanapi Node.js, anu ngariung dina C API tingkat rendah sareng API dumasar kana mékanisme Worker Wéb, anu ngamungkinkeun Anjeun pikeun nyieun pawang Asynchronous dieksekusi dina threads misah. Pikeun nyumputkeun intricacies ngatur karya kalawan aliran dina luhureun API basis Worker Web, versi panganteur program dumasar kana mékanisme Jangji ogé keur dimekarkeun.

Data anu disimpen aplikasi wéb dina versi WASM tina SQLite tiasa dilokalkeun dina sési ayeuna (leungit saatos ngamuat halaman) atanapi disimpen di sisi klien (disimpen antara sési). Pikeun neundeun permanén, backends geus disiapkeun pikeun nempatkeun data dina sistem file lokal ngagunakeun OPFS (Origin-Private FileSystem, extension ka File System Access API, ayeuna ngan sadia dina browser dumasar kana WebKit jeung Chromium) jeung dina panyimpenan browser lokal dumasar. dina window.localStorage API jeung window.sessionStorage. Lamun maké localStorage / sessionStorage, data ieu reflected di toko pakait dina format konci / nilai, sarta lamun ngagunakeun OPFS, aya dua pilihan: simulating a virtual FS maké WASMFS sarta palaksanaan misah tina sqlite3_vfs, nawarkeun hiji SQLite VFS lapisan dumasar. dina OPFS.

Pikeun ngawangun SQLite kana tampilan WASM, kompiler Emscripten dianggo (cukup pikeun ngawangun ekstensi ext/wasm: "./configure —enable-all; make sqlite3.c; cd ext/wasm; make"). Kaluaran nyaéta file sqlite3.js sareng sqlite3.wasm, anu tiasa dilebetkeun kana proyék JavaScript anjeun (conto HTML sareng JavaScript).

sumber: opennet.ru

Tambahkeun komentar