SQLite iżid appoġġ WASM għall-użu tad-DBMS f'web browser

L-iżviluppaturi ta 'SQLite qed jiżviluppaw proġett biex jimplimentaw il-kapaċità li tiġbor il-librerija f'kodiċi intermedju WebAssembly li jista' jaħdem f'web browser u huwa adattat għall-organizzazzjoni tax-xogħol mad-database minn applikazzjonijiet tal-web fil-lingwa JavaScript. Il-kodiċi għall-appoġġ tal-WebAssembly ġie miżjud mar-repożitorju prinċipali tal-proġett. B'differenza mill-API WebSQL, li hija bbażata fuq SQLite, WASM SQLite huwa kompletament iżolat mill-browser u ma jaffettwax is-sigurtà tiegħu (Google iddeċieda li jneħħi l-appoġġ għal WebSQL fi Chrome wara diversi vulnerabbiltajiet f'SQLite li jistgħu jiġu sfruttati permezz ta' WebSQL biex jattakkaw il-browser ).

L-għan tal-proġett huwa li jipprovdi rabta JavaScript li taħdem li hija identika fil-funzjonalità għall-API SQLite. L-iżviluppaturi tal-web huma pprovduti b'interface orjentata lejn l-oġġetti ta' livell għoli biex jaħdmu b'dejta fl-istil ta' sql.js jew Node.js, tgeżwir fuq API C ta' livell baxx, u API ibbażata fuq il-mekkaniżmu tal-Web Worker li jippermettilek biex jinħolqu handlers asinkroniċi li jimxu fuq ħjut separati. Biex taħbi l-intricacies tal-organizzazzjoni tax-xogħol b'ħjut fuq l-API bbażata fuq il-Web Worker, qed jiġi żviluppat ukoll varjant tal-interface tal-ipprogrammar ibbażat fuq il-mekkaniżmu Promise.

Id-dejta li l-applikazzjonijiet tal-web jaħżnu fil-verżjoni WASM ta 'SQLite tista' tiġi lokalizzata fis-sessjoni attwali (mitlufa wara t-tagħbija mill-ġdid tal-paġna) jew in-naħa tal-klijent tippersisti (persisti bejn is-sessjonijiet). Għal ħażna persistenti, backends ġew ippreparati għat-tqegħid tad-dejta f'sistema ta' fajls lokali bl-użu ta' OPFS (Origin-Private FileSystem, estensjoni għall-API ta' Aċċess għas-Sistema tal-File, disponibbli s'issa biss f'browsers ibbażati fuq WebKit u Chromium) u f'ħażniet lokali tal-browser ibbażat fuq l-API window.localStorage u window.sessionStorage. Meta tuża localStorage/sessionStorage, id-dejta tiġi mmappjata mal-ħażniet taċ-ċavetta/valur xierqa, filwaqt li meta tuża OPFS, hemm żewġ għażliet: tissimula sistema ta’ fajls virtwali bl-użu ta’ WASMFS, u implimentazzjoni separata ta’ sqlite3_vfs li toffri saff SQLite VFS ibbażat fuq OPFS. .

Biex tinbena SQLite f'rappreżentazzjoni WASM, jintuża l-kompilatur Emscripten (huwa biżżejjed li tinbena l-estensjoni ext/wasm: "./configure --enable-all; make sqlite3.c; cd ext/wasm; make"). L-output huwa fajls sqlite3.js u sqlite3.wasm li tista' tinkludi fil-proġett JavaScript tiegħek (eżempju HTML u JavaScript).

Sors: opennet.ru

Żid kumment