Postgres-wasm er et projekt, hvor PostgreSQL er blevet overført til WebAssembly
For nylig blev gratis adgang til postgres-wasm annonceret . Dette er en PostgreSQL-server , der kører i en browser og tilbyder et komplet sæt funktioner, herunder browser state persistens, gendannelse fra pg_dump og logisk replikering fra en fjerndatabase.
Postgres-wasm er et open source-projekt, der har porteret PostgreSQL til WebAssembly . Denne løsning blev udviklet gennem et samarbejde mellem Supabase, en cloud-databaseudbyder, og Snaplet, en virksomhed der specialiserer sig i databaseprogrammering.
"I dag lancerer vi postgres-wasm med vores venner på Snaplet," sagde Supabase-ingeniør Mark Burggraf
For dem der ikke er bekendt med Postgres, er det et af de mest avancerede open source-databasehåndteringssystemer . Det er funktionsrigt, 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 blot en relationsdatabase; det er blevet din betroede dataplatform.
Om Postgres-wasm
Supabase er ikke den første til at få Postgres til at køre i en browser; den titel tilhører Crunchy Data-teamet, som delte deres version 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 via en webbrowser. Dette blev opnået ved hjælp af Linux-distributionen Buildroot, der er kendetegnet ved sin ekstremt lille størrelse, og v86-emulatoren, der tillader at replikere driften af en x86-terminal.
WebAssembly er derimod beregnet til at muliggøre konstruktionen af højtydende applikationer på websider, men den gør ikke webspecifikke antagelser eller leverer webspecifik funktionalitet, så den kan også bruges i andre miljøer. Det er en åben standard, der sigter mod at understøtte ethvert sprog på ethvert operativsystem, og i praksis har alle de mest populære sprog allerede i det mindste et vist niveau af understøttelse. Supabase bruger v86 til at køre sin VM i browseren.
Det er fantastisk at køre Postgres i en browser , men det er endnu bedre at oprette forbindelse til den med PgAdmin. Desværre blokerer browsere adgang til VM'ens TCP-netværk. For at omgå dette ruter Supabase trafik gennem WebSockets. De bruger en WebSockProxy-fork, der giver emulatoren mulighed for at kommunikere med internettet ved at konvertere data sendt via en WebSocket-port til TCP-pakker. WebSockProxy-forken tilføjer muligheden for at tunnelere Postgres-serveren.
Blandt projektets vigtigste funktioner er følgende:
- 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 lære mere om dette , kan du finde detaljerne på følgende link.