postgres-wasm, PostgreSQL server běžící v prohlížeči s WebAssembly

postgres-wasm

Postgres-wasm je projekt, ve kterém byl PostgreSQL portován do WebAssembly

Nedávno byl oznámen bezplatný přístup k postgres-wasm . Jedná se o PostgreSQL server , který běží v prohlížeči a nabízí kompletní sadu funkcí, včetně perzistence stavu prohlížeče, obnovy z pg_dump a logické replikace ze vzdálené databáze.

Postgres-wasm je open-source projekt, který portoval PostgreSQL do WebAssembly . Toto řešení bylo vyvinuto ve spolupráci mezi Supabase, poskytovatelem cloudových databází, a Snaplet, společností specializující se na programování databází.

„Dnes zahajujeme postgres-wasm s našimi přáteli ve Snapletu,“ řekl inženýr Supabase Mark Burggraf.

Pro ty, kteří Postgres neznají , je to jeden z nejpokročilejších systémů pro správu databází s otevřeným zdrojovým kódem . Je bohatý na funkce, s robustními datovými typy, výkonným indexováním a širokou škálou vestavěných funkcí, které lze použít ke zjednodušení datového zásobníku a umožnit vývojářům soustředit se na tvorbu jejich aplikací. Postgres je více než jen relační databáze; stal se vaší důvěryhodnou datovou platformou.

O Postgres-wasm

Supabase není první, kdo spustil Postgres v prohlížeči; tento titul patří týmu Crunchy Data, který sdílel svou verzi na HN před měsícem. Ve snaze vyvinout open-source verzi proprietární verze Crunchy Data se Supabase spojila se Snapletem na vytvoření Postgres-wasm.

Díky Postgres-wasm lze PostgreSQL spouštět přímo přes webový prohlížeč. Toho bylo dosaženo pomocí linuxové distribuce Buildroot, která se vyznačuje extrémně malou velikostí, a emulátoru v86, který umožňuje replikaci provozu terminálu x86.

WebAssembly je na druhou stranu určen k umožnění tvorby vysoce výkonných aplikací na webových stránkách, ale nečiní žádné předpoklady specifické pro web ani neposkytuje webové funkce, takže jej lze použít i v jiných prostředích. Jedná se o otevřený standard, jehož cílem je podporovat jakýkoli jazyk na jakémkoli operačním systému, a v praxi všechny nejpopulárnější jazyky již mají alespoň určitou úroveň podpory. Supabase používá v86 ke spuštění svého virtuálního stroje v prohlížeči.

Spouštění Postgresu v prohlížeči je skvělé , ale připojení k němu pomocí PgAdminu je ještě lepší. Prohlížeče bohužel blokují přístup k TCP síti virtuálního počítače. Aby se tomu vyhnula, Supabase směruje provoz přes WebSockety. Používají WebSockProxy fork, který umožňuje emulátoru komunikovat s internetem převodem dat odeslaných přes port WebSocket na TCP pakety. WebSockProxy fork přidává možnost tunelování serveru Postgres.

Mezi klíčové rysy projektu patří:

  • Postgres 14.5, psql, pg_dump atd.
  • Uložit a obnovit stav do/ze souboru.
  • Uložte a obnovte stav Postgres do/z úložiště prohlížeče (IndexedDB).
  • Rychlé spuštění ze stavového souboru nebo úplný reset emulátoru.
  • Možnosti konfigurace paměti od 128 MB do 1024 MB.
  • Nastavte velikost písma pro terminál.
  • Nahrajte soubory do emulátoru (včetně CSV a výpisů z databáze).
  • Stáhnout soubory emulátoru.
  • Odchozí síťové připojení z emulátoru k Internetu.
  • Příchozí síťový tunel do postgresového portu 5432 uvnitř emulátoru.

Obecně je celý projekt obsažen v jediném snímku o velikosti 12 MB, se kterým lze provozovat PostgreSQL server.

Jak vývojáři Postgres-wasm přiznávají, běhový výkon není příliš vysoký, ale sám o sobě byl úspěšně splněn cíl učinit PostgreSQL 14.5 použitelný z plnohodnotného prohlížeče s rozhraním příkazového řádku psql.

A konečně, pokud se chcete o tomto tématu dozvědět více , podrobnosti naleznete na následujícím odkazu.


Přidat jako preferovaný zdroj v Googlu