postgres-wasm,在帶有 WebAssembly 的瀏覽器中運行的 PostgreSQL 服務器

postgres-wasm

Postgres-wasm 是一個將 PostgreSQL 移植到 WebAssembly 的項目

最近通過一個公告得知 免費訪問 postgres-wasm,這是一個 PostgreSQL 服務器 它在瀏覽器中運行並提供全套功能,包括瀏覽器中的狀態持久性、從 pg_dump 恢復以及從遠程數據庫進行邏輯複製。

postgres-wasm 一個在開源許可下發布的項目,多虧了 PostgreSQL 被移植到 WebAssembly. 這是由於雲數據庫提供商 Supabase 和專門從事數據庫編程的公司 Snaplet 之間的合作而開發的解決方案。

“今天我們將與 Snaplet 的朋友一起推出 postgres-wasm,”Supabase 工程師 Mark Burggraf 說

對於那些不知道的人 postgres, 他們應該知道 是最先進的開源數據庫管理系統之一. 它功能豐富,具有健壯的數據類型、強大的索引和廣泛的內置函數,可用於簡化數據堆棧並讓開發人員專注於構建他們的應用程序。 Postgres 不僅僅是一個關係數據庫,它已成為您值得信賴的數據平台。

關於 Postgres-wasm

Supabase 並不是第一個讓 Postgres 在瀏覽器中工作的人。 這個頭銜屬於 Crunchy Data 的團隊,他們在一個月前分享了他們對 HN 的看法。 為了開發 Crunchy Data 專有版本的開源版本,Supabase 與 Snaplet 合作構建了 Postgres-wasm。

感謝 Postgres-wasm,PostgreSQL 可以直接通過瀏覽器運行 對於 Web 瀏覽,使用了 Buildroot Linux 發行版,其特點是尺寸極小,並且 v86 模擬器允許複製 x86 終端的操作。

在一部分 WebAssembly,這是為了允許在網頁上構建高性能應用程序, “但它不會做出特定於 Web 的假設或提供特定於 Web 的功能,因此它也可以在其他環境中使用。 它是一個開放標準,旨在支持任何操作系統上的任何語言,在實踐中,所有最流行的語言都已經至少有一定程度的支持。 Supabase 使用 v86 在瀏覽器中運行它的虛擬機。

在瀏覽器中運行 Postgres 很棒,但使用 PgAdmin 連接它會更好。 不幸的是,瀏覽器阻止了對 VM 的 TCP 網絡的訪問。 為了規避這一點, Supbase 通過 websocket 路由流量。 他們使用 Websockproxy 的一個分支,允許模擬器通過將通過 websocket 端口發送的數據轉換為 TCP 數據包來與 Internet 通信。 Websockproxy fork 添加了隧道 Postgres 服務器的能力。

內部特徵 從項目中脫穎而出,提到以下內容:

  • Postgres 14.5、psql、pg_dump 等。
  • 將狀態保存到/從文件中恢復。
  • 在瀏覽器存儲(IndexedDB)中保存和恢復 Postgres 狀態。
  • 從狀態文件或完全模擬器重置快速啟動。
  • 內存配置選項從 128 MB 到 1024 MB。
  • 設置終端的字體大小。
  • 將文件上傳到模擬器(包括 CSV 和數據庫轉儲)。
  • 下載模擬器文件。
  • 從模擬器到 Internet 的傳出網絡連接。
  • 入站網絡隧道到模擬器內的 postgres 端口 5432。

通常,整個項目包含在一個大小為 12 MB 的快照中,用於運行 PostgreSQL 服務器。

正如 Postgres-wasm 開發人員承認的那樣,運行時性能並不是很高,但其本身已經成功實現了使 PostgreSQL 14.5 可以在具有 psql 命令行界面的完整瀏覽器中使用的目標。

終於 如果您有興趣了解更多信息,您可以在中查看詳細信息 以下鏈接。


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。