postgres-wasm, сервер PostgreSQL, работающий в браузере с WebAssembly.

Postgres-Wasm

Postgres-wasm — это проект, в котором PostgreSQL портирован на WebAssembly.

Недавно об этом стало известно из объявления на бесплатный доступ к postgres-wasm, серверу PostgreSQL который запускается в браузере и предлагает полный набор функций, включая сохранение состояния в браузере, восстановление из pg_dump и логическую репликацию из удаленной базы данных.

postgres-wasm en проект, выпущенный под лицензией Open Source, благодаря которому PostgreSQL был портирован на WebAssembly. Это решение разработано благодаря сотрудничеству Supabase, поставщика облачных баз данных, и Snaplet, компании, специализирующейся на программировании баз данных.

«Сегодня мы запускаем postgres-wasm с нашими друзьями из Snaplet, — сказал инженер Supabase Марк Бургграф.

Для тех, кто не знает постгрес, они должны знать, что является одной из самых передовых систем управления базами данных с открытым исходным кодом.. Он многофункциональный, с надежными типами данных, мощной индексацией и широким набором встроенных функций, которые можно использовать для упрощения стека данных и позволять разработчикам сосредоточиться на создании своего приложения. Postgres — это больше, чем реляционная база данных, она стала вашей надежной платформой данных.

О Postgres-wasm

Supabase — не первая программа, в которой Postgres работает в браузере; этот титул достается команде Crunchy Data, которая поделилась своим мнением о HN месяц назад. Желая разработать версию закрытой версии Crunchy Data с открытым исходным кодом, Supabase заключила партнерское соглашение с Snaplet для создания Postgres-wasm.

Благодаря Postgres-wasm, PostgreSQL можно запускать напрямую через браузер. Для просмотра веб-страниц использовался дистрибутив Buildroot Linux, характеризующийся чрезвычайно уменьшенными размерами, и эмулятор v86, позволяющий воспроизвести работу терминала x86.

Со стороны WebAssembly, это предназначено для создания высокопроизводительных приложений на веб-страницах, «Но он не делает предположений, специфичных для Интернета, и не предоставляет специфичные для Интернета функции, поэтому его можно использовать и в других средах. Это открытый стандарт, целью которого является поддержка любого языка в любой операционной системе, и на практике все самые популярные языки уже имеют хоть какой-то уровень поддержки. Supabase использует v86 для запуска своей виртуальной машины внутри браузера.

Запуск Postgres в браузере — это здорово, но еще лучше подключиться к нему с помощью PgAdmin. К сожалению, браузеры блокируют доступ к сети TCP виртуальной машины. Чтобы обойти это, Supabase направляет трафик через веб-сокеты. Они используют ответвление Websockproxy, которое позволяет эмулятору взаимодействовать с Интернетом путем преобразования данных, отправленных через порт веб-сокета, в пакеты TCP. Форк Websockproxy добавляет возможность туннелирования сервера Postgres.

Внутренние особенности которые выделяются из проекта, упоминаются следующие:

  • Postgres 14.5, psql, pg_dump и т. д.
  • Сохранение и восстановление состояния в/из файла.
  • Сохраняйте и восстанавливайте состояние Postgres в/из хранилища браузера (IndexedDB).
  • Быстрая загрузка из файла состояния или полный сброс эмулятора.
  • Варианты конфигурации памяти от 128 МБ до 1024 МБ.
  • Установите размер шрифта для терминала.
  • Загрузить файлы в эмулятор (включая дампы CSV и базы данных).
  • Загрузите файлы эмулятора.
  • Исходящее сетевое подключение от эмулятора к Интернету.
  • Входящий сетевой туннель к порту postgres 5432 внутри эмулятора.

В общем, весь проект содержится в одном снимке размером 12 МБ, с помощью которого можно запустить сервер PostgreSQL.

Как признают разработчики Postgres-wasm, производительность во время выполнения не очень высока, но сама по себе цель сделать PostgreSQL 14.5 пригодным для использования из полноценного браузера с интерфейсом командной строки psql успешно достигнута.

В конце концов если вам интересно узнать об этом больше, вы можете проверить подробности в по следующей ссылке.


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.