В SQLite добавлена поддержка WASM для использования СУБД в web-браузере
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Разработчики 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
===========
Похожие новости
- Главная ссылка к новости (https://news.ycombinator.com/i...)
- OpenNews: Проект libSQL начал развитие форка СУБД SQLite
- OpenNews: Выпуск СУБД SQLite 3.39
- OpenNews: Доступен предварительный вариант стандарта WebAssembly 2.0
- OpenNews: Уязвимость в SQLite, позволяющая удалённо атаковать Chrome через WebSQL
- OpenNews: Проект Postgres WASM подготовил работающее в браузере окружение с СУБД PostgreSQL
Похожие новости:
- Проект libSQL начал развитие форка СУБД SQLite
- Выпуск СУБД SQLite 3.39
- Представлен Litestream с реализацией системы репликации для SQLite
- Доступен предварительный вариант стандарта WebAssembly 2.0
- Выпуск СУБД SQLite 3.38 и набора утилит sqlite-utils 3.24
- Вариант LibreOffice, скомпилированный в WebAssembly и работающий в web-браузере
- Выпуск rqlite 7.0, распределённой отказоустойчивой СУБД на основе SQLite
- В основной ветке Python появилась возможность сборки для работы в браузере
- Выпуск СУБД SQLite 3.37
- [Разработка мобильных приложений, Разработка под Android, SQLite] Использование Android App Search для full-text поиска данных в android-приложениях
Теги для поиска: #_sqlite, #_wasm, #_webassembly
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 24-Ноя 17:21
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Разработчики 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 =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 24-Ноя 17:21
Часовой пояс: UTC + 5