postgres-wasm, PostgreSQL-serveren, der kører i en browser med WebAssembly

postgres-wasm

Postgres-wasm er et projekt, hvor PostgreSQL er blevet overført til WebAssembly

Det blev for nylig gjort kendt gennem en meddelelse den fri adgang til postgres-wasm, som er en PostgreSQL-server som kører i en browser og tilbyder et komplet sæt funktioner, inklusiv vedvarende tilstand i browseren, gendannelse fra pg_dump og logisk replikering fra en fjerndatabase.

postgres-wasm en et projekt frigivet under en Open Source-licens, takket være hvilken PostgreSQL er blevet porteret til WebAssembly. Dette er en løsning udviklet takket være samarbejdet mellem Supabase, en cloud-databaseudbyder, og Snaplet, en virksomhed specialiseret i databaseprogrammering.

"I dag lancerer vi postgres-wasm med vores venner på Snaplet," sagde Supabase-ingeniør Mark Burggraf

For dem der ikke er opmærksomme på postgres, de burde vide det er et af de mest avancerede open source-databasestyringssystemer. Den er rig på funktioner, med robuste datatyper, kraftfuld indeksering og en bred vifte af indbyggede funktioner, der kan bruges til at forenkle datastakken og give udviklere mulighed for at fokusere på at bygge deres applikation. Postgres er mere end en relationel database, den er blevet din betroede dataplatform.

Om Postgres-wasm

Supabase er ikke den første, der får Postgres til at fungere i en browser; den titel går til holdet hos Crunchy Data, som delte deres bud på HN for en måned siden. I deres ønske om at udvikle en open source-version af Crunchy Datas proprietære version, samarbejdede Supabase med Snaplet om at bygge Postgres-wasm.

Takket være Postgres-wasm kan PostgreSQL køres direkte gennem en browser Til web-browsing blev Buildroot Linux-distributionen brugt, kendetegnet ved ekstremt reducerede dimensioner, og v86-emulatoren, der gør det muligt at replikere driften af ​​en x86-terminal.

Fra den del af WebAssembly, dette er beregnet til at gøre det muligt at bygge højtydende applikationer på websider, “men det gør ikke web-specifikke antagelser eller giver web-specifik funktionalitet, så det kan også bruges i andre miljøer. Det er en åben standard, der har til formål at understøtte ethvert sprog på ethvert operativsystem, og i praksis har alle de mest populære sprog allerede i det mindste en vis grad af understøttelse. Supabase bruger v86 til at køre sin VM inde i browseren.

At køre Postgres i en browser er fantastisk, men det er endnu bedre at oprette forbindelse til det med PgAdmin. Desværre blokerer browserne for adgangen til VM'ens TCP-netværk. For at omgå dette, Supabase dirigerer trafik gennem websockets. De bruger en fork af Websockproxy, der gør det muligt for emulatoren at kommunikere med internettet ved at konvertere data sendt via en websocket-port til TCP-pakker. Websockproxy-gaflen tilføjer muligheden for at tunnelere Postgres-serveren.

Indvendige funktioner der skiller sig ud fra projektet, er følgende nævnt:

  • Postgres 14.5, psql, pg_dump osv.
  • Gem og gendan tilstand til/fra en fil.
  • Gem og gendan Postgres-tilstand til/fra browserlager (IndexedDB).
  • Hurtig opstart fra en statusfil eller fuld nulstilling af emulator.
  • Hukommelseskonfigurationsmuligheder fra 128 MB til 1024 MB.
  • Indstil skriftstørrelsen for terminalen.
  • Upload filer til emulatoren (inklusive CSV- og databasedumps).
  • Download emulator-filer.
  • Udgående netværksforbindelse fra emulatoren til internettet.
  • Indgående netværkstunnel til postgres port 5432 inde i emulatoren.

Generelt er hele projektet indeholdt i et enkelt snapshot på størrelse 12 MB, som man kan køre en PostgreSQL-server med.

Som Postgres-wasm-udviklere indrømmer, er runtime-ydeevnen ikke særlig høj, men i sig selv er målet om at gøre PostgreSQL 14.5 anvendeligt fra en fuld browser med en psql-kommandolinjegrænseflade lykkedes. .

Endelig hvis du er interesseret i at vide mere om det, kan du kontrollere detaljerne i følgende link.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.