SQLite veb-brauzerda ma'lumotlar bazasidan foydalanish uchun WASM yordamini qo'shadi

SQLite ishlab chiquvchilari veb-brauzerda ishlay oladigan va JavaScript-dagi veb-ilovalardan ma'lumotlar bazasi bilan ishlashni tashkil qilish uchun mos bo'lgan WebAssembly oraliq kodiga kutubxonani kompilyatsiya qilish qobiliyatini amalga oshirish loyihasini ishlab chiqmoqdalar. WebAssembly-ni qo'llab-quvvatlash uchun kod asosiy loyiha omboriga qo'shildi. SQLite-ga asoslangan WebSQL API-dan farqli o'laroq, WASM SQLite brauzerdan butunlay ajratilgan va uning xavfsizligiga ta'sir qilmaydi (Google SQLite-dagi bir nechta zaifliklardan brauzerga hujum qilish uchun WebSQL orqali foydalanish mumkin bo'lganidan keyin Chrome-da WebSQL-ni qo'llab-quvvatlashni bekor qilishga qaror qildi) .

Loyihaning maqsadi SQLite API bilan bir xil bo'lgan ishlaydigan JavaScript ramkasini taqdim etishdir. Veb-ishlab chiquvchilar sql.js yoki Node.js uslubidagi ma'lumotlar bilan ishlash uchun yuqori darajadagi ob'ektga yo'naltirilgan interfeys, past darajadagi C API va Web Worker mexanizmiga asoslangan API bilan ta'minlangan, bu esa imkon beradi. siz alohida ish zarrachalarida bajariladigan asinxron ishlov beruvchilarni yaratishingiz mumkin. Web Worker-ga asoslangan API-ning tepasida oqimlar bilan ishlashni tashkil qilishning nozik tomonlarini yashirish uchun dastur interfeysining Promise mexanizmiga asoslangan versiyasi ham ishlab chiqilmoqda.

Veb-ilovalar SQLite ning WASM versiyasida saqlaydigan ma'lumotlar joriy seans ichida mahalliylashtirilishi (sahifani qayta yuklashdan keyin yo'qolishi) yoki mijoz tomonida saqlanishi (sessiyalar o'rtasida saqlanishi) mumkin. Doimiy saqlash uchun OPFS (Origin-Private FileSystem, File System Access API kengaytmasi, hozirda faqat WebKit va Chromium asosidagi brauzerlarda mavjud) va mahalliy brauzer xotirasi asosidagi maʼlumotlarni mahalliy fayl tizimiga joylashtirish uchun backendlar tayyorlangan. window.localStorage API va window.sessionStorage-da. LocalStorage/sessionStorage-dan foydalanganda ma'lumotlar tegishli do'konlarda kalit/qiymat formatida aks ettiriladi va OPFS-dan foydalanganda ikkita variant mavjud: WASMFS yordamida virtual FSni simulyatsiya qilish va sqlite3_vfs-ning alohida amalga oshirilishi, SQLite VFS qatlamini taklif qilish. OPFS bo'yicha.

SQLite-ni WASM ko'rinishida qurish uchun Emscripten kompilyatoridan foydalaniladi (ext/wasm kengaytmasini yaratish kifoya: “./configure —enable-all; make sqlite3.c; cd ext/wasm; make”). Chiqish sqlite3.js va sqlite3.wasm fayllari boʻlib, ular JavaScript loyihangizga kiritilishi mumkin (HTML va JavaScript misoli).

Manba: opennet.ru

a Izoh qo'shish