В 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