Відкрито напрацювання проекту Postgres WASM, що розвиває оточення з СУБД PostgreSQL, що працює всередині браузера. Пов'язаний із проектом код відкритий під ліцензією MIT. Пропонується інструментарій для складання віртуальної машини, що працює в браузері, з урізаним 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, створення локального оточення розробника, підготовка зрізів певного стану СУБД для відправки розробникам або у службу підтримки, тестування логічної реплікації із зовнішніх СУБД.
Джерело: opennet.ru