Postgres-wasm ir projekts, kurā PostgreSQL ir pārnests uz WebAssembly
Nesen tika paziņots par bezmaksas piekļuvi postgres-wasm . Šis ir PostgreSQL serveris , kas darbojas pārlūkprogrammā un piedāvā pilnu funkciju komplektu, tostarp pārlūkprogrammas stāvokļa saglabāšanu, atjaunošanu no pg_dump un loģisko replikāciju no attālinātas datubāzes.
Postgres-wasm ir atvērtā pirmkoda projekts, kas ir pārnesis PostgreSQL uz WebAssembly . Šis risinājums tika izstrādāts, sadarbojoties Supabase, mākoņdatubāzu pakalpojumu sniedzējam, un Snaplet, uzņēmumam, kas specializējas datubāzu programmēšanā.
"Šodien mēs ar saviem draugiem Snaplet uzsākam postgres-wasm," sacīja Supabase inženieris Marks Burggrafs.
Tiem, kas nav pazīstami ar Postgres, tā ir viena no vismodernākajām atvērtā pirmkoda datubāzu pārvaldības sistēmām . Tā ir bagāta ar funkcijām, ar spēcīgiem datu tipiem, jaudīgu indeksēšanu un plašu iebūvēto funkciju klāstu, ko var izmantot, lai vienkāršotu datu kaudzi un ļautu izstrādātājiem koncentrēties uz savas lietojumprogrammas izveidi. Postgres ir vairāk nekā tikai relāciju datubāze; tā ir kļuvusi par jūsu uzticamo datu platformu.
Par Postgres-wasm
Supabase nav pirmā, kas palaiž Postgres pārlūkprogrammā; šis nosaukums pieder Crunchy Data komandai, kas pirms mēneša publicēja savu versiju HN. Vēloties izstrādāt Crunchy Data patentētās versijas atvērtā koda versiju, Supabase sadarbojās ar Snaplet, lai izveidotu Postgres-wasm.
Pateicoties Postgres-wasm, PostgreSQL var palaist tieši caur tīmekļa pārlūkprogrammu. Tas tika panākts, izmantojot Linux distributīvu Buildroot, kam raksturīgs ārkārtīgi mazs izmērs, un v86 emulatoru, kas ļauj atkārtot x86 termināļa darbību.
Savukārt WebAssembly ir paredzēts, lai tīmekļa lapās varētu veidot augstas veiktspējas lietojumprogrammas, taču tas neizdara tīmekļa specifiskus pieņēmumus vai nenodrošina tīmekļa specifisku funkcionalitāti, tāpēc to var izmantot arī citās vidēs. Tas ir atvērts standarts, kura mērķis ir atbalstīt jebkuru valodu jebkurā operētājsistēmā, un praksē visām populārākajām valodām jau ir vismaz zināms atbalsta līmenis. Supabase izmanto v86, lai palaistu savu virtuālo mašīnu pārlūkprogrammā.
Postgres palaišana pārlūkprogrammā ir lieliska , bet savienojuma izveide ar to, izmantojot PgAdmin, ir vēl labāka. Diemžēl pārlūkprogrammas bloķē piekļuvi virtuālās mašīnas TCP tīklam. Lai to apietu, Supabase maršrutē datplūsmu caur WebSockets. Viņi izmanto WebSockProxy atzarojumu, kas ļauj emulatoram sazināties ar internetu, pārveidojot caur WebSocket portu nosūtītos datus TCP paketēs. WebSockProxy atzarojums pievieno iespēju tunelēt Postgres serveri.
Starp projekta galvenajām iezīmēm ir šādas:
- Postgres 14.5, psql, pg_dump utt.
- Saglabājiet un atjaunojiet statusu failā/no faila.
- Saglabājiet un atjaunojiet Postgres stāvokli pārlūkprogrammas krātuvē/no tās (IndexedDB).
- Ātra sāknēšana no statusa faila vai pilna emulatora atiestatīšana.
- Atmiņas konfigurācijas iespējas no 128 MB līdz 1024 MB.
- Iestatiet termināļa fonta lielumu.
- Augšupielādējiet failus emulatorā (tostarp CSV un datu bāzes izgāztuves).
- Lejupielādējiet emulatora failus.
- Izejošais tīkla savienojums no emulatora uz internetu.
- Ienākošā tīkla tunelis uz postgres portu 5432 emulatora iekšpusē.
Kopumā viss projekts ir ietverts vienā momentuzņēmumā, kura lielums ir 12 MB, ar kuru var palaist PostgreSQL serveri.
Kā atzīst Postgres-wasm izstrādātāji, izpildlaika veiktspēja nav īpaši augsta, taču pats par sevi mērķis padarīt PostgreSQL 14.5 lietojamu no pilnas pārlūkprogrammas ar psql komandrindas interfeisu ir veiksmīgi sasniegts.
Visbeidzot, ja vēlaties uzzināt vairāk par šo tēmu , sīkāku informāciju varat atrast, izmantojot šo saiti.