postgres-wasm, PostgreSQL-serveren som kjører i en nettleser med WebAssembly

postgres-wasm

Postgres-wasm er et prosjekt der PostgreSQL har blitt portert til WebAssembly

Det ble nylig gjort kjent gjennom en kunngjøring på gratis tilgang til postgres-wasm, som er en PostgreSQL-server som kjører i en nettleser og tilbyr et komplett sett med funksjoner, inkludert vedvarende tilstand i nettleseren, gjenoppretting fra pg_dump og logisk replikering fra en ekstern database.

postgres-wasm en et prosjekt utgitt under en åpen kildekode-lisens takket være hvilken PostgreSQL har blitt portert til WebAssembly. Dette er en løsning utviklet takket være samarbeidet mellom Supabase, en skydatabaseleverandør, og Snaplet, et selskap spesialisert på databaseprogrammering.

"I dag lanserer vi postgres-wasm med vennene våre på Snaplet," sa Supabase-ingeniør Mark Burggraf

For de som ikke er klar over postgres, det burde de vite er et av de mest avanserte databasestyringssystemene med åpen kildekode. Den er funksjonsrik, med robuste datatyper, kraftig indeksering og et bredt spekter av innebygde funksjoner som kan brukes til å forenkle datastakken og la utviklere fokusere på å bygge applikasjonen sin. Postgres er mer enn en relasjonsdatabase, den har blitt din pålitelige dataplattform.

Om Postgres-wasm

Supabase er ikke den første som får Postgres til å fungere i en nettleser; den tittelen går til teamet hos Crunchy Data som delte sitt syn på HN for en måned siden. I deres ønske om å utvikle en åpen kildekode-versjon av Crunchy Datas proprietære versjon, samarbeidet Supabase med Snaplet for å bygge Postgres-wasm.

Takket være Postgres-wasm kan PostgreSQL kjøres direkte gjennom en nettleser For nettsurfing ble Buildroot Linux-distribusjonen brukt, preget av ekstremt reduserte dimensjoner, og v86-emulatoren som tillater replikering av driften av en x86-terminal.

På den delen av WebAssembly, dette er ment å la høyytelsesapplikasjoner bygges på nettsider, "men det gjør ikke nettspesifikke forutsetninger eller gir nettspesifikk funksjonalitet, så det kan brukes i andre miljøer også. Det er en åpen standard som tar sikte på å støtte et hvilket som helst språk på et hvilket som helst operativsystem, og i praksis har alle de mest populære språkene allerede i det minste et visst nivå av støtte. Supabase bruker v86 for å kjøre sin VM inne i nettleseren.

Å kjøre Postgres i en nettleser er flott, men å koble til den med PgAdmin er enda bedre. Dessverre blokkerer nettleserne tilgang til VMs TCP-nettverk. For å omgå dette, Supabase ruter trafikk gjennom websockets. De bruker en gaffel av Websockproxy som lar emulatoren kommunisere med Internett ved å konvertere data sendt over en websocket-port til TCP-pakker. Websockproxy-gaffelen legger til muligheten til å tunnelere Postgres-serveren.

Innvendige funksjoner som skiller seg ut fra prosjektet, er følgende nevnt:

  • Postgres 14.5, psql, pg_dump, etc
  • Lagre og gjenopprett tilstand til/fra en fil.
  • Lagre og gjenopprett Postgres-tilstand til/fra nettleserlagring (IndexedDB).
  • Rask oppstart fra en statusfil eller fullstendig tilbakestilling av emulator.
  • Minnekonfigurasjonsalternativer fra 128 MB til 1024 MB.
  • Still inn skriftstørrelsen for terminalen.
  • Last opp filer til emulatoren (inkludert CSV- og databasedumper).
  • Last ned emulator-filer.
  • Utgående nettverkstilkobling fra emulatoren til Internett.
  • Innkommende nettverkstunnel til postgres-port 5432 inne i emulatoren.

Generelt er hele prosjektet inneholdt i et enkelt øyeblikksbilde på størrelse 12 MB for å kjøre en PostgreSQL-server.

Som Postgres-wasm-utviklere innrømmer, er kjøretidsytelsen ikke særlig høy, men i seg selv er målet om å gjøre PostgreSQL 14.5 brukbart fra en full nettleser med et psql-kommandolinjegrensesnitt nådd.

Endelig hvis du er interessert i å vite mer om det, kan du sjekke detaljene i følgende lenke.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.