Postgres-wasm je projekt u kojem je PostgreSQL prenesen na WebAssembly
Nedavno je najavljen besplatan pristup postgres-wasm-u . Riječ je o PostgreSQL poslužitelju koji radi u pregledniku i nudi cijeli niz značajki, uključujući pohranu stanja preglednika, vraćanje iz pg_dumpa i logičku replikaciju iz udaljene baze podataka.
Postgres-wasm je projekt otvorenog koda koji je portirao PostgreSQL na WebAssembly . Ovo rješenje razvijeno je suradnjom između Supabasea, pružatelja usluga baza podataka u oblaku, i Snapleta, tvrtke specijalizirane za programiranje baza podataka.
"Danas pokrećemo postgres-wasm s našim prijateljima u Snapletu", rekao je Supabase inženjer Mark Burggraf
Za one koji nisu upoznati s Postgresom, to je jedan od najnaprednijih sustava za upravljanje bazama podataka otvorenog koda . Bogat je značajkama, s robusnim tipovima podataka, moćnim indeksiranjem i širokim rasponom ugrađenih funkcija koje se mogu koristiti za pojednostavljenje stoga podataka i omogućuju programerima da se usredotoče na izgradnju svojih aplikacija. Postgres je više od obične relacijske baze podataka; postao je vaša pouzdana platforma za podatke.
O Postgres-wasmu
Supabase nije prvi koji je pokrenuo Postgres u pregledniku; ta titula pripada timu Crunchy Data, koji je svoju verziju podijelio na HN-u prije mjesec dana. U svojoj želji da razviju verziju otvorenog koda vlasničke verzije Crunchy Data, Supabase se udružio sa Snapletom kako bi izgradili Postgres-wasm.
Zahvaljujući Postgres-wasmu, PostgreSQL se može pokrenuti izravno putem web preglednika. To je postignuto korištenjem Linux distribucije Buildroot, koju karakterizira izuzetno mala veličina, i v86 emulatora koji omogućuje repliciranje rada x86 terminala.
S druge strane , WebAssembly je namijenjen omogućavanju izgradnje visokoučinkovitih aplikacija na web stranicama, ali ne postavlja specifične pretpostavke za web niti pruža funkcionalnosti specifične za web, pa se može koristiti i u drugim okruženjima. To je otvoreni standard koji ima za cilj podržati bilo koji jezik na bilo kojem operativnom sustavu, a u praksi svi najpopularniji jezici već imaju barem određenu razinu podrške. Supabase koristi v86 za pokretanje svog VM-a unutar preglednika.
Pokretanje Postgresa u pregledniku je izvrsno , ali povezivanje s njim putem PgAdmina je još bolje. Nažalost, preglednici blokiraju pristup TCP mreži virtualnog stroja. Kako bi to zaobišao, Supabase usmjerava promet putem WebSocketsa. Koriste WebSockProxy fork koji omogućuje emulatoru komunikaciju s internetom pretvaranjem podataka poslanih putem WebSocket porta u TCP pakete. WebSockProxy fork dodaje mogućnost tuneliranja Postgres poslužitelja.
Među ključnim značajkama projekta su sljedeće:
- Postgres 14.5, psql, pg_dump itd.
- Spremite i vratite stanje u/iz datoteke.
- Spremite i vratite stanje Postgresa u/iz pohrane preglednika (IndexedDB).
- Brzo pokretanje iz statusne datoteke ili potpuno resetiranje emulatora.
- Mogućnosti konfiguracije memorije od 128 MB do 1024 MB.
- Postavite veličinu fonta za terminal.
- Učitajte datoteke u emulator (uključujući CSV i ispise baze podataka).
- Preuzmite datoteke emulatora.
- Odlazna mrežna povezanost s emulatora na Internet.
- Ulazni mrežni tunel do postgres porta 5432 unutar emulatora.
Općenito, cijeli je projekt sadržan u jednoj snimci veličine 12 MB s kojom se pokreće PostgreSQL poslužitelj.
Kao što programeri Postgres-wasma priznaju, izvedba vremena izvođenja nije jako visoka, ali sam cilj da se PostgreSQL 14.5 učini upotrebljivim iz potpunog preglednika sa psql sučeljem naredbenog retka uspješno je postignut. .
Konačno, ako ste zainteresirani saznati više o ovome , detalje možete pronaći na sljedećoj poveznici.