Проект Postgres WASM подготовил работающее в браузере окружение с СУБД PostgreSQL

Открыты наработки проекта 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, создание локального окружения разработчика, подготовка срезов определённого состояния СУБД для отправки другим разработчикам или в службу поддержки, тестирование логической репликации с внешних СУБД.


Release. Ссылка here.