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.