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

Автор Сообщение
news_bot ®

Стаж: 6 лет 2 месяца
Сообщений: 27286

Создавать темы news_bot ® написал(а)
29-Окт-2022 21:54

Разработчики SQLite развивают проект по реализации возможности компиляции библиотеки в промежуточный код WebAssembly, способный запускаться в web-браузере и пригодный для организации работы с БД из web-приложений на языке JavaScript. Код для поддержки WebAssembly добавлен в основной репозиторий проекта. В отличие от API WebSQL, в основе которого лежит SQLite, WASM SQLite полностью изолирован от браузера и не влияет на его безопасность (Google решил отказаться от поддержки WebSQL в Chrome после нескольких уязвимостей в SQLite, которые можно было эксплуатировать через WebSQL для атаки на браузер).
Целью проекта является предоставление рабочей JavaScript-обвязки, идентичной по функциональности с API SQLite. Web-разработчикам предоставляется высокоуровневый объектно-ориентированный интерфейс для работы с данными в стиле sql.js или Node.js, обвязка над низкоуровневым C API и API на базе механизма Web Worker, позволяющий создавать асинхронные обработчики, выполняемые в отдельных потоках. Для скрытия тонкостей организации работы с потоками поверх API на базе Web Worker также развивается вариант программного интерфейса на основе механизма Promise.
Данные, которые web-приложения сохраняют в 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
===========

Похожие новости: Теги для поиска: #_sqlite, #_wasm, #_webassembly
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 29-Апр 06:38
Часовой пояс: UTC + 5