В SQLite добавлена поддержка WASM для использования СУБД в веб-браузере.

Разработчиците на SQLite развиват проект за реализиране на възможността за компилиране на библиотеката в междинен код WebAssembly, способен да се изпълнява в уеб браузър и подходящ за организиране на работа с бази данни от уеб приложения на JavaScript. Кодът за поддръжка на WebAssembly е добавен в основното хранилище на проекта. В отличие от API WebSQL, на който SQLite е в основата, WASM SQLite е напълно изолиран от браузъра и не влияе на неговата сигурност (Google реши да се откаже от поддръжката на WebSQL в Chrome след няколко уязвимости в SQLite, които можеха да се експлоатират чрез WebSQL за атака на браузъра).

Целта на проекта е предоставянето на работещ JavaScript обвивка, идентична по функционалност на API SQLite. На уеб разработчиците се предоставя високоредовен обектно-ориентиран интерфейс за работа с данни в стил sql.js или Node.js, обвивка над нискоуровневото C API и API на базата на механизма Web Worker, позволяваща създаването на асинхронни обработчици, изпълнявани в отделни потоци. За скриване на особеностите на организацията на работа с потоците над API на базата на Web Worker също се развива вариант на програмния интерфейс, основан на механизма Promise.

Данните, които уеб приложенията запазват в WASM версията на SQLite, могат да бъдат локализирани в рамките на текущата сесия (изгубват се след повторно презареждане на страниците) или запазени на страната на клиента (запазват се между сесиите). За постоянно съхранение са подготвени бекенди за разполагане на данни в локалната файлова система чрез OPFS (Origin-Private FileSystem, разширение на API File System Access, достъпно засега само в браузъри, базирани на WebKit и Chromium) и в локалните браузърни хранилища на базата на API window.localStorage и window.sessionStorage. В случай на използване на localStorage/sessionStorage, данните се отразяват в съответните хранилища в формат ключ/стойност, а при употреба на OPFS са предвидени два варианта: симулация на виртуална файлова система чрез 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

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster