Открыты наработки проекта Postgres WASM, развивающего окружение с СУБД PostgreSQL, работающее внутри браузера. Связанный с проектом код открыт под лицензией MIT. В том числе предлагается инструментарий для сборки работающей в браузере виртуальной машины c урезанным Linux-окружением, сервером PostgreSQL 14.5 и сопутствующими утилитами (psql, pg_dump). Размер итоговой сборки около 30 МБ.
Начинка виртуальной машины формируется при помощи скриптов buildroot и запускается в браузере с использованием эмулятора v86. Для взаимодействия с утилитами PostgreSQL из браузера поставляется web-оболочка. Для обращения к запущенному в браузере серверу PostgreSQL по сети и выполнению сетевых запросов из виртуальной машины используется прокси, пробрасывающий трафик при помощи
API Websocket.
Основные возможности Postgres WASM:
- Сохранение и восстановление состояния СУБД из файла или браузерного хранилища на базе IndexedDB.
- Быстрый запуск из файла с сохранённым состоянием виртуальной машины или полный запуск с перезагрузкой эмулятора.
- Возможность выделения виртуальной машине от 128 до 1024МБ памяти.
- Настройка размера шрифта web-терминала.
- Поддержка загрузки файлов в виртуальное окружение, в том числе можно загружать дампы БД.
- Поддержка скачивания файлов из виртуального окружения.
- Установка входящих и исходящих сетевых соединений, в том числе создание туннеля для проброса обращений к сетевому порту 5432.
Среди возможных областей применения Postgres WASM упоминается создание демонстрационных и обучающих систем, организация работы с данными в offline-режиме, анализ данных при нахождении в offline-режиме, тестирование функциональности и конфигураций PostgresSQL, создание локального окружения разработчика, подготовка срезов определённого состояния СУБД для отправки другим разработчикам или в службу поддержки, тестирование логической репликации с внешних СУБД.