SQLite веб-шолғышта ДҚБЖ пайдалану үшін WASM қолдауын қосады

SQLite әзірлеушілері веб-шолғышта іске қосылатын және JavaScript тіліндегі веб-қосымшалардан дерекқормен жұмысты ұйымдастыруға жарамды аралық WebAssembly кодына кітапхананы құрастыру мүмкіндігін іске асыру жобасын әзірлеуде. WebAssembly қолдау коды жобаның негізгі репозиторийіне қосылды. SQLite негізіндегі WebSQL API интерфейсінен айырмашылығы, WASM SQLite браузерден толығымен оқшауланған және оның қауіпсіздігіне әсер етпейді (Google SQLite жүйесіндегі бірнеше осалдықтардан кейін Chrome жүйесінде WebSQL қолдауын тоқтатуды шешті, ол WebSQL арқылы браузерге шабуыл жасау үшін пайдаланылуы мүмкін. ).

Жобаның мақсаты - SQLite API интерфейсімен функционалдығы бірдей жұмыс істейтін JavaScript байланыстыруын қамтамасыз ету. Веб-әзірлеушілер sql.js немесе Node.js стиліндегі деректермен жұмыс істеуге, төмен деңгейлі C API-ге оралуға арналған жоғары деңгейлі нысанға бағытталған интерфейспен және сізге мүмкіндік беретін Web Worker механизміне негізделген API қамтамасыз етілген. бөлек ағындарда жұмыс істейтін асинхронды өңдегіштерді жасау үшін. Web Worker негізіндегі API жоғарғы жағындағы ағындармен жұмысты ұйымдастырудың күрделілігін жасыру үшін Promise механизміне негізделген бағдарламалау интерфейсінің нұсқасы да әзірленуде.

Веб қолданбалары SQLite бағдарламасының WASM нұсқасында сақтайтын деректер ағымдағы сеанс ішінде (бетті қайта жүктегеннен кейін жоғалады) немесе клиент тарапынан тұрақты (сеанстар арасында сақталады) локализациялануы мүмкін. Тұрақты сақтау үшін OPFS (Origin-Private FileSystem, File System Access API кеңейтімі, әзірге тек WebKit және Chromium негізіндегі шолғыштарда қолжетімді) және жергілікті шолғыш қоймаларында деректерді жергілікті файл жүйесіне орналастыру үшін серверлер дайындалған. window.localStorage API және window.sessionStorage негізінде. localStorage/sessionStorage пайдалану кезінде деректер сәйкес кілт/мән қоймаларына салыстырылады, ал OPFS пайдаланған кезде екі опция бар: WASMFS көмегімен виртуалды файлдық жүйені имитациялау және OPFS негізіндегі SQLite VFS деңгейін ұсынатын бөлек sqlite3_vfs іске асыру. .

SQLite-ді WASM көрсетіліміне құру үшін Emscripten компиляторы пайдаланылады (ext/wasm кеңейтімін құрастыру жеткілікті: "./configure --enable-all; make sqlite3.c; cd ext/wasm; make"). Шығару JavaScript жобасына қосуға болатын sqlite3.js және sqlite3.wasm файлдары (HTML және JavaScript мысалы).

Ақпарат көзі: opennet.ru

пікір қалдыру