SQLite дастгирии WASM-ро барои истифодаи DBMS дар браузери веб илова мекунад

Таҳиягарони SQLite лоиҳаеро таҳия мекунанд, ки қобилияти тартиб додани китобхонаро ба коди мобайнии WebAssembly, ки дар браузери веб кор карда метавонад ва барои ташкили кор бо пойгоҳи додаҳо аз барномаҳои веб дар JavaScript мувофиқ аст. Рамзи дастгирии WebAssembly ба анбори асосии лоиҳа илова карда шуд. Баръакси API WebSQL, ки ба SQLite асос ёфтааст, WASM SQLite аз браузер комилан ҷудо карда шудааст ва ба амнияти он таъсир намерасонад (Google тасмим гирифт, ки дастгирии WebSQL-ро дар Chrome пас аз он ки якчанд осебпазирии SQLite тавассути WebSQL барои ҳамла ба браузер истифода шавад) .

Ҳадафи лоиҳа таъмин намудани чаҳорчӯбаи кории JavaScript мебошад, ки аз ҷиҳати функсия ба API SQLite якхела аст. Таҳиягарони веб бо интерфейси сатҳи баланд ба объект нигаронидашуда барои кор бо додаҳо дар услуби sql.js ё Node.js, ҳатмӣ бар API-и сатҳи пасти C ва API дар асоси механизми Web Worker, ки имкон медиҳад шумо барои эҷоди коркардкунандагони асинхронӣ, ки дар риштаҳои алоҳида иҷро мешаванд. Барои пинҳон кардани нозукиҳои ташкили кор бо ҷараёнҳо дар болои API-и Web Worker, инчунин версияи интерфейси барнома дар асоси механизми Promise таҳия карда мешавад.

Маълумоте, ки веб-барномаҳо дар версияи WASM-и SQLite нигоҳ медоранд, метавонанд дар сеанси ҷорӣ локализатсия карда шаванд (пас аз дубора боркунии саҳифа гум шуданд) ё дар тарафи муштарӣ нигоҳ дошта шаванд (байни сессияҳо захира карда мешаванд). Барои нигаҳдории доимӣ, пуштибонҳо барои ҷойгир кардани маълумот дар системаи файлии маҳаллӣ бо истифода аз OPFS (Origin-Private FileSystem, васеъшавии API Access System File, ки айни замон танҳо дар браузерҳо дар асоси WebKit ва Chromium дастрас аст) ва дар нигаҳдории браузери маҳаллӣ дар асоси он омода карда шудаанд. дар API window.localStorage ва window.sessionStorage. Ҳангоми истифодаи localStorage/sessionStorage, маълумот дар мағозаҳои мувофиқ дар формати калид/арзиш инъикос карда мешавад ва ҳангоми истифодаи OPFS, ду вариант вуҷуд дорад: тақлид кардани FS виртуалӣ бо истифода аз WASMFS ва татбиқи алоҳидаи sqlite3_vfs, пешниҳоди қабати SQLite VFS дар асоси. дар OPFS.

Барои сохтани SQLite ба намуди WASM, компилятори Emscripten истифода мешавад (барои сохтани васеъшавии ext/wasm кифоя аст: “./configure —enable-all; make sqlite3.c; cd ext/wasm; make”). Натиҷаи файлҳои sqlite3.js ва sqlite3.wasm мебошад, ки онҳоро метавон ба лоиҳаи JavaScript-и шумо дохил кард (мисоли HTML ва JavaScript).

Манбаъ: opennet.ru

Илова Эзоҳ