postgres-wasm, strežnik PostgreSQL, ki se izvaja v brskalniku z WebAssembly

postgres-wasm

Postgres-wasm je projekt, v katerem je bil PostgreSQL prenesen v WebAssembly

Pred kratkim je bil objavljen brezplačen dostop do postgres-wasm . To je strežnik PostgreSQL , ki deluje v brskalniku in ponuja celoten nabor funkcij, vključno z ohranjanjem stanja brskalnika, obnovitvijo iz pg_dump in logično replikacijo iz oddaljene baze podatkov.

Postgres-wasm je odprtokodni projekt, ki je prenesel PostgreSQL v WebAssembly . Ta rešitev je bila razvita v sodelovanju med Supabase, ponudnikom baz podatkov v oblaku, in Snaplet, podjetjem, specializiranim za programiranje baz podatkov.

»Danes lansiramo postgres-wasm z našimi prijatelji pri Snapletu,« je povedal inženir Supabase Mark Burggraf

Za tiste, ki niso seznanjeni s Postgresom, je to eden najnaprednejših odprtokodnih sistemov za upravljanje baz podatkov . Je bogat s funkcijami, z robustnimi podatkovnimi tipi, zmogljivim indeksiranjem in široko paleto vgrajenih funkcij, ki jih je mogoče uporabiti za poenostavitev podatkovnega sklada in omogočiti razvijalcem, da se osredotočijo na gradnjo svoje aplikacije. Postgres je več kot le relacijska baza podatkov; postal je vaša zaupanja vredna podatkovna platforma.

O Postgres-wasm

Supabase ni prvi, ki je Postgres pognal v brskalniku; ta naziv pripada ekipi Crunchy Data, ki je svojo različico delila na HN pred mesecem dni. V želji po razvoju odprtokodne različice lastniške različice Crunchy Data se je Supabase povezal s Snapletom pri izgradnji Postgres-wasm.

Zahvaljujoč Postgres-wasmu je mogoče PostgreSQL zagnati neposredno prek spletnega brskalnika. To je bilo doseženo z uporabo distribucije Linuxa Buildroot, ki jo odlikuje izjemno majhna velikost, in emulatorja v86, ki omogoča replikacijo delovanja terminala x86.

WebAssembly pa je namenjen omogočanju gradnje visokozmogljivih aplikacij na spletnih straneh, vendar ne postavlja predpostavk, specifičnih za splet, ali zagotavlja funkcionalnosti, specifične za splet, zato ga je mogoče uporabljati tudi v drugih okoljih. Gre za odprt standard, katerega cilj je podpirati kateri koli jezik v katerem koli operacijskem sistemu, in v praksi imajo vsi najbolj priljubljeni jeziki že vsaj določeno raven podpore. Supabase uporablja v86 za zagon svojega virtualnega stroja v brskalniku.

Zagon Postgresa v brskalniku je odličen , vendar je povezovanje z njim s PgAdminom še boljše. Žal brskalniki blokirajo dostop do omrežja TCP virtualnega stroja. Da bi to zaobšel, Supabase usmerja promet prek WebSockets. Uporabljajo razvejano vezje WebSockProxy, ki emulatorju omogoča komunikacijo z internetom s pretvorbo podatkov, poslanih prek vrat WebSocket, v pakete TCP. Razvejano vezje WebSockProxy doda možnost tuneliranja strežnika Postgres.

Med ključnimi značilnostmi projekta so naslednje:

  • Postgres 14.5, psql, pg_dump itd.
  • Shranite in obnovite stanje v/iz datoteke.
  • Shranite in obnovite stanje Postgres v/iz pomnilnika brskalnika (IndexedDB).
  • Hitri zagon iz statusne datoteke ali popolna ponastavitev emulatorja.
  • Možnosti konfiguracije pomnilnika od 128 MB do 1024 MB.
  • Nastavite velikost pisave za terminal.
  • Naložite datoteke v emulator (vključno s CSV in izpisi baze podatkov).
  • Prenesite datoteke emulatorja.
  • Odhodna omrežna povezljivost iz emulatorja v internet.
  • Vhodni omrežni tunel do vrat postgres 5432 znotraj emulatorja.

Na splošno je celoten projekt vsebovan v enem samem posnetku velikosti 12 MB, s katerim je mogoče zagnati strežnik PostgreSQL.

Kot priznavajo razvijalci Postgres-wasm, zmogljivost med izvajanjem ni zelo visoka, vendar je bil cilj, da bi PostgreSQL 14.5 postal uporaben iz polnega brskalnika z vmesnikom ukazne vrstice psql, uspešno dosežen.

Nenazadnje, če vas zanima več o tem , lahko podrobnosti najdete na naslednji povezavi.


Dodaj kot prednostni vir v Googlu