postgres-wasm, сервер PostgreSQL, що працює в браузері з WebAssembly

postgres-wasm

Postgres-wasm — це проект, у якому PostgreSQL було перенесено на WebAssembly

Нещодавно було анонсовано безкоштовний доступ до postgres-wasm . Це сервер PostgreSQL , який працює в браузері та пропонує повний набір функцій, включаючи збереження стану браузера, відновлення з pg_dump та логічну реплікацію з віддаленої бази даних.

Postgres-wasm — це проєкт з відкритим кодом, який портував PostgreSQL на WebAssembly . Це рішення було розроблено завдяки співпраці між Supabase, постачальником хмарних баз даних, та Snaplet, компанією, що спеціалізується на програмуванні баз даних.

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

Для тих, хто не знайомий з Postgres, це одна з найсучасніших систем керування базами даних з відкритим кодом . Вона багата на функції, має надійні типи даних, потужне індексування та широкий спектр вбудованих функцій, які можна використовувати для спрощення стеку даних та дозволяють розробникам зосередитися на створенні своїх додатків. Postgres — це більше, ніж просто реляційна база даних; вона стала вашою надійною платформою даних.

Про Postgres-wasm

Supabase не перша компанія, яка запустила Postgres у браузері; ця назва належить команді Crunchy Data, яка поділилася своєю версією на HN місяць тому. Бажаючи розробити версію з відкритим кодом власної версії Crunchy Data, Supabase у партнерстві зі Snaplet створила Postgres-wasm.

Завдяки Postgres-wasm, PostgreSQL можна запускати безпосередньо через веббраузер . Цього вдалося досягти за допомогою дистрибутива Linux Buildroot, який характеризується надзвичайно малим розміром, та емулятора v86, який дозволяє реплікувати роботу терміналу x86.

З іншого боку , WebAssembly призначений для створення високопродуктивних програм на веб-сторінках, але він не робить специфічних для веб-сайтів припущень і не забезпечує специфічну для веб-сайтів функціональність, тому його також можна використовувати в інших середовищах. Це відкритий стандарт, який має на меті підтримку будь-якої мови в будь-якій операційній системі, і на практиці всі найпопулярніші мови вже мають принаймні певний рівень підтримки. Supabase використовує v86 для запуску своєї віртуальної машини в браузері.

Запуск Postgres у браузері – це чудово , але підключення до нього за допомогою PgAdmin ще краще. На жаль, браузери блокують доступ до TCP-мережі віртуальної машини. Щоб обійти це, Supabase направляє трафік через WebSockets. Вони використовують форк WebSockProxy, який дозволяє емулятору взаємодіяти з Інтернетом, перетворюючи дані, надіслані через порт WebSocket, на TCP-пакети. Форк WebSockProxy додає можливість тунелювати сервер Postgres.

Серед ключових особливостей проекту можна виділити наступне:

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

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

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

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


Додати як пріоритетне джерело в Google