postgres-wasm, serverul PostgreSQL care rulează într-un browser cu WebAssembly

postgres-wasm

Postgres-wasm este un proiect în care PostgreSQL a fost portat pe WebAssembly

Recent, a fost anunțat accesul gratuit la postgres-wasm . Acesta este un server PostgreSQL care rulează într-un browser și oferă un set complet de funcții, inclusiv persistența stării browserului, restaurarea din pg_dump și replicarea logică dintr-o bază de date la distanță.

Postgres-wasm este un proiect open-source care a portat PostgreSQL la WebAssembly . Această soluție a fost dezvoltată printr-o colaborare între Supabase, un furnizor de baze de date în cloud, și Snaplet, o companie specializată în programarea bazelor de date.

„Astăzi lansăm postgres-wasm împreună cu prietenii noștri de la Snaplet”, a spus inginerul Supabase Mark Burggraf

Pentru cei care nu sunt familiarizați cu Postgres, este unul dintre cele mai avansate sisteme de gestionare a bazelor de date open-source . Este bogat în funcții, cu tipuri de date robuste, indexare puternică și o gamă largă de funcții încorporate care pot fi utilizate pentru a simplifica stiva de date și a permite dezvoltatorilor să se concentreze pe construirea aplicației lor. Postgres este mai mult decât o simplă bază de date relațională; a devenit platforma de date de încredere.

Despre Postgres-wasm

Supabase nu este prima companie care rulează Postgres într-un browser; acest titlu aparține echipei Crunchy Data, care a distribuit versiunea lor pe HN acum o lună. În dorința de a dezvolta o versiune open-source a versiunii proprietare a Crunchy Data, Supabase a colaborat cu Snaplet pentru a construi Postgres-wasm.

Datorită Postgres-wasm, PostgreSQL poate fi rulat direct printr-un browser web. Acest lucru a fost realizat folosind distribuția Linux Buildroot, caracterizată prin dimensiunile sale extrem de mici, și emulatorul v86 care permite replicarea funcționării unui terminal x86.

WebAssembly, pe de altă parte , este destinat să permită construirea de aplicații de înaltă performanță pe pagini web, dar nu face presupuneri specifice web-ului și nu oferă funcționalități specifice web-ului, astfel încât poate fi utilizat și în alte medii. Este un standard deschis care își propune să suporte orice limbaj pe orice sistem de operare și, în practică, toate limbajele cele mai populare au deja cel puțin un anumit nivel de suport. Supabase folosește v86 pentru a rula mașina virtuală în browser.

Rularea Postgres într-un browser este excelentă , dar conectarea la acesta cu PgAdmin este și mai bună. Din păcate, browserele blochează accesul la rețeaua TCP a mașinii virtuale. Pentru a ocoli acest lucru, Supabase direcționează traficul prin WebSockets. Acestea folosesc o furcă WebSockProxy care permite emulatorului să comunice cu internetul prin convertirea datelor trimise printr-un port WebSocket în pachete TCP. Furca WebSockProxy adaugă capacitatea de a tunela serverul Postgres.

Printre caracteristicile cheie ale proiectului se numără următoarele:

  • Postgres 14.5, psql, pg_dump etc.
  • Salvați și restabiliți starea într-un fișier.
  • Salvați și restaurați starea Postgres în/din stocarea browserului (IndexedDB).
  • Pornire rapidă dintr-un fișier de stare sau resetare completă a emulatorului.
  • Opțiuni de configurare a memoriei de la 128 MB la 1024 MB.
  • Setați dimensiunea fontului pentru terminal.
  • Încărcați fișiere în emulator (inclusiv CSV și depozitele bazei de date).
  • Descărcați fișiere de emulator.
  • Conectivitate la rețea de ieșire de la emulator la Internet.
  • Tunel de rețea de intrare către portul postgres 5432 în interiorul emulatorului.

În general, întregul proiect este conținut într-un singur instantaneu de dimensiunea de 12 MB cu care să rulați un server PostgreSQL.

După cum recunosc dezvoltatorii Postgres-wasm, performanța de rulare nu este foarte mare, dar în sine obiectivul de a face PostgreSQL 14.5 utilizabil dintr-un browser complet cu o interfață de linie de comandă psql a fost atins cu succes.

În cele din urmă, dacă sunteți interesați să aflați mai multe despre acest subiect , puteți găsi detalii la următorul link.


Adăugați ca sursă preferată în Google