postgres-wasm, ang PostgreSQL server na tumatakbo sa isang browser na may WebAssembly

postgres-wasm

Ang Postgres-wasm ay isang proyekto kung saan ang PostgreSQL ay nai-port sa WebAssembly

Ito ay ipinaalam kamakailan sa pamamagitan ng isang anunsyo sa libreng access sa postgres-wasm, na isang PostgreSQL server na tumatakbo sa isang browser at nag-aalok ng isang buong hanay ng mga tampok, kabilang ang pagtitiyaga ng estado sa browser, pagpapanumbalik mula sa pg_dump, at lohikal na pagtitiklop mula sa isang malayong database.

postgres-wasm en isang proyekto na inilabas sa ilalim ng isang Open Source na lisensya salamat sa kung saan ang PostgreSQL ay nai-port sa WebAssembly. Ito ay isang solusyon na binuo salamat sa pakikipagtulungan sa pagitan ng Supabase, isang cloud database provider, at Snaplet, isang kumpanyang dalubhasa sa database programming.

"Ngayon ay naglulunsad kami ng postgres-wasm kasama ang aming mga kaibigan sa Snaplet," sabi ni Supabase Engineer Mark Burggraf

Para sa mga hindi nakakaalam postgres, Dapat nilang malaman iyon ay isa sa mga pinaka-advanced na open source database management system. Ito ay mayaman sa tampok, na may matatag na uri ng data, malakas na pag-index, at malawak na hanay ng mga built-in na function na maaaring magamit upang pasimplehin ang data stack at payagan ang mga developer na tumuon sa pagbuo ng kanilang application. Ang mga postgres ay higit pa sa isang relational database, ito ay naging iyong pinagkakatiwalaang platform ng data.

Tungkol sa Postgres-wasm

Ang Supabase ay hindi ang unang gumawa ng Postgres sa isang browser; napupunta ang titulong iyon sa koponan sa Crunchy Data na nagbahagi ng kanilang pananaw sa HN isang buwan na ang nakalipas. Sa kanilang pagnanais na bumuo ng isang open source na bersyon ng pagmamay-ari na bersyon ng Crunchy Data, nakipagsosyo ang Supabase sa Snaplet upang bumuo ng Postgres-wasm.

Salamat sa Postgres-wasm, ang PostgreSQL ay maaaring direktang patakbuhin sa pamamagitan ng isang browser Para sa pag-browse sa Web, ginamit ang pamamahagi ng Buildroot Linux, na nailalarawan sa pamamagitan ng napakababang dimensyon, at ang v86 emulator na nagbibigay-daan sa pagkopya ng operasyon ng isang x86 terminal.

Sa bahagi ng WebAssembly, nilalayon nitong payagan ang mga application na may mataas na pagganap na mabuo sa mga web page, “ngunit hindi ito gumagawa ng mga pagpapalagay na partikular sa web o nagbibigay ng functionality na partikular sa web, kaya magagamit din ito sa ibang mga kapaligiran. Ito ay isang bukas na pamantayan na naglalayong suportahan ang anumang wika sa anumang operating system, at sa pagsasanay ang lahat ng pinakasikat na wika ay mayroon nang kahit ilang antas ng suporta. Gumagamit ang Supabase ng v86 upang patakbuhin ang VM nito sa loob ng browser.

Ang pagpapatakbo ng mga Postgres sa isang browser ay mahusay, ngunit mas maganda ang pagkonekta dito gamit ang PgAdmin. Sa kasamaang palad, hinaharangan ng mga browser ang access sa TCP network ng VM. Upang maiwasan ito, Niruruta ng Supabase ang trapiko sa pamamagitan ng mga websocket. Gumagamit sila ng isang tinidor ng Websockproxy na nagpapahintulot sa emulator na makipag-ugnayan sa Internet sa pamamagitan ng pag-convert ng data na ipinadala sa isang websocket port sa mga TCP packet. Ang Websockproxy fork ay nagdaragdag ng kakayahang i-tunnel ang Postgres server.

Mga Tampok sa Loob na kakaiba sa proyekto, ang mga sumusunod ay nabanggit:

  • Postgres 14.5, psql, pg_dump, atbp.
  • I-save at ibalik ang estado sa/mula sa isang file.
  • I-save at ibalik ang estado ng Postgres sa/mula sa imbakan ng browser (IndexedDB).
  • Mabilis na pag-boot mula sa isang status file o buong pag-reset ng emulator.
  • Mga opsyon sa pagsasaayos ng memorya mula 128 MB hanggang 1024 MB.
  • Itakda ang laki ng font para sa terminal.
  • Mag-upload ng mga file sa emulator (kabilang ang CSV at database dumps).
  • Mag-download ng mga file ng emulator.
  • Papalabas na koneksyon sa network mula sa emulator hanggang sa Internet.
  • Papasok na network tunnel sa postgres port 5432 sa loob ng emulator.

Sa pangkalahatan, ang buong proyekto ay nakapaloob sa isang snapshot na may sukat na 12 MB kung saan magpapatakbo ng isang PostgreSQL server.

Tulad ng inamin ng mga developer ng Postgres-wasm, ang pagganap ng runtime ay hindi masyadong mataas, ngunit sa sarili nitong layunin na gawing magagamit ang PostgreSQL 14.5 mula sa isang buong browser na may psql command line interface ay matagumpay na nakamit. .

Sa wakas kung interesado kang malaman ang tungkol dito, maaari mong suriin ang mga detalye sa sumusunod na link.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.