Postgres-wasm is een project waarin PostgreSQL is overgezet naar WebAssembly
Onlangs werd de gratis toegang tot postgres-wasm aangekondigd . Dit is een PostgreSQL-server die in een browser draait en een complete set functies biedt, waaronder het behouden van de browserstatus, herstel vanuit pg_dump en logische replicatie vanuit een externe database.
Postgres-wasm is een open-sourceproject dat PostgreSQL naar WebAssembly heeft geporteerd . Deze oplossing is ontwikkeld in samenwerking tussen Supabase, een clouddatabaseprovider, en Snaplet, een bedrijf dat gespecialiseerd is in databaseprogrammering.
"Vandaag lanceren we postgres-wasm met onze vrienden bij Snaplet," zei Supabase Engineer Mark Burggraf
Voor wie niet bekend is met PostgreSQL: het is een van de meest geavanceerde open-source databasesystemen . Het is rijk aan functies, met robuuste gegevenstypen, krachtige indexering en een breed scala aan ingebouwde functies die de datastructuur vereenvoudigen en ontwikkelaars in staat stellen zich te concentreren op het bouwen van hun applicatie. PostgreSQL is meer dan alleen een relationele database; het is uitgegroeid tot uw vertrouwde dataplatform.
Over Postgres-wasm
Supabase is niet de eerste die PostgreSQL in een browser laat draaien; die eer gaat naar het team van Crunchy Data, dat hun versie een maand geleden op Hacker News deelde. In hun streven om een ​​open-sourceversie van Crunchy Data's propriëtaire versie te ontwikkelen, werkte Supabase samen met Snaplet aan Postgres-wasm.
Dankzij Postgres-wasm kan PostgreSQL rechtstreeks via een webbrowser worden uitgevoerd. Dit is bereikt met behulp van de Linux-distributie Buildroot, die zich kenmerkt door zijn extreem kleine omvang, en de v86-emulator waarmee de werking van een x86-terminal kan worden nagebootst.
WebAssembly is daarentegen bedoeld om de ontwikkeling van krachtige applicaties op webpagina's mogelijk te maken, maar het gaat niet uit van webspecifieke aannames of biedt webspecifieke functionaliteit, waardoor het ook in andere omgevingen gebruikt kan worden. Het is een open standaard die ernaar streeft elke taal op elk besturingssysteem te ondersteunen, en in de praktijk hebben alle meest populaire talen al een zekere mate van ondersteuning. Supabase gebruikt v86 om zijn virtuele machine in de browser te draaien.
PostgreSQL in een browser draaien is geweldig , maar er verbinding mee maken via PgAdmin is nog beter. Helaas blokkeren browsers de toegang tot het TCP-netwerk van de virtuele machine. Om dit te omzeilen, routeert Supabase het verkeer via WebSockets. Ze gebruiken een fork van WebSockProxy waarmee de emulator met het internet kan communiceren door gegevens die via een WebSocket-poort worden verzonden, om te zetten in TCP-pakketten. De fork van WebSockProxy voegt de mogelijkheid toe om de PostgreSQL-server te tunnelen.
De belangrijkste kenmerken van het project zijn onder andere de volgende:
- Postgres 14.5, psql, pg_dump, enz.
- Bewaar en herstel de staat van/naar een bestand.
- Bewaar en herstel de Postgres-status naar/van browseropslag (IndexedDB).
- Snel opstarten vanuit een statusbestand of volledige emulatorreset.
- Geheugenconfiguratie-opties van 128 MB tot 1024 MB.
- Stel de lettergrootte voor de terminal in.
- Upload bestanden naar de emulator (inclusief CSV en databasedumps).
- Download emulatorbestanden.
- Uitgaande netwerkverbinding van de emulator naar internet.
- Inkomende netwerktunnel naar postgres-poort 5432 in de emulator.
Over het algemeen zit het hele project in een enkele momentopname van 12 MB waarmee een PostgreSQL-server kan worden uitgevoerd.
Zoals de ontwikkelaars van Postgres-wasm toegeven, zijn de runtime-prestaties niet erg hoog, maar op zich is het doel om PostgreSQL 14.5 bruikbaar te maken vanuit een volledige browser met een psql-opdrachtregelinterface met succes bereikt. .
Als u hier meer over wilt weten , kunt u de details vinden via de volgende link.