Postgres-wasm yra projektas, kuriame PostgreSQL buvo perkeltas į WebAssembly
Neseniai buvo paskelbta apie nemokamą prieigą prie „postgres-wasm“ . Tai „PostgreSQL“ serveris , veikiantis naršyklėje ir siūlantis visą funkcijų rinkinį, įskaitant naršyklės būsenos išsaugojimą, atkūrimą iš „pg_dump“ ir loginę replikaciją iš nuotolinės duomenų bazės.
„Postgres-wasm“ yra atvirojo kodo projektas, perkėlęs „PostgreSQL“ į „WebAssembly“ . Šis sprendimas buvo sukurtas bendradarbiaujant debesijos duomenų bazių teikėjai „Supabase“ ir „Snaplet“ – įmonei, kuri specializuojasi duomenų bazių programavime.
„Šiandien su draugais „Snaplet“ pradedame „postgres-wasm“, – sakė „Supabase“ inžinierius Markas Burggrafas.
Tiems, kurie nėra susipažinę su „Postgres“, tai viena pažangiausių atvirojo kodo duomenų bazių valdymo sistemų . Ji pasižymi daugybe funkcijų, patikimais duomenų tipais, galingu indeksavimu ir plačiu integruotų funkcijų spektru, kurias galima naudoti duomenų rinkiniui supaprastinti ir leisti kūrėjams sutelkti dėmesį į savo programos kūrimą. „Postgres“ yra daugiau nei tik reliacinė duomenų bazė; ji tapo jūsų patikima duomenų platforma.
Apie Postgres-wasm
„Supabase“ nėra pirmoji, paleidžianti „Postgres“ naršyklėje; šis pavadinimas priklauso „Crunchy Data“ komandai, kuri prieš mėnesį savo versiją paskelbė HN. Siekdama sukurti atvirojo kodo „Crunchy Data“ patentuotos versijos versiją, „Supabase“ bendradarbiavo su „Snaplet“, kad sukurtų „Postgres-wasm“.
„Postgres-wasm“ dėka „PostgreSQL“ galima paleisti tiesiai per žiniatinklio naršyklę. Tai buvo pasiekta naudojant „Linux“ platinimą „Buildroot“, kuriam būdingas itin mažas dydis, ir „v86“ emuliatorių, kuris leidžia atkartoti x86 terminalo veikimą.
Kita vertus , „WebAssembly“ skirta kurti didelio našumo programas tinklalapiuose, tačiau ji nedaro su žiniatinkliu susijusių prielaidų ir nesuteikia žiniatinkliui būdingų funkcijų, todėl gali būti naudojama ir kitose aplinkose. Tai atviras standartas, kuriuo siekiama palaikyti bet kurią kalbą bet kurioje operacinėje sistemoje, ir praktiškai visos populiariausios kalbos jau turi bent tam tikrą palaikymo lygį. „Supabase“ naudoja v86, kad paleistų savo virtualiąją mašiną naršyklėje.
„Postgres“ paleidimas naršyklėje yra puikus , bet prisijungti prie jo naudojant „PgAdmin“ yra dar geriau. Deja, naršyklės blokuoja prieigą prie VM TCP tinklo. Kad tai apeitų, „Supabase“ nukreipia srautą per „WebSockets“. Jie naudoja „WebSockProxy“ atšaką, kuri leidžia emuliatoriui bendrauti su internetu konvertuojant per „WebSocket“ prievadą siunčiamus duomenis į TCP paketus. „WebSockProxy“ atšaka prideda galimybę tuneliuoti „Postgres“ serverį.
Tarp pagrindinių projekto bruožų yra šie:
- Postgres 14.5, psql, pg_dump ir kt
- Išsaugoti ir atkurti būseną į failą / iš failo.
- Išsaugokite ir atkurkite Postgres būseną į / iš naršyklės saugyklos (IndexedDB).
- Greitas paleidimas iš būsenos failo arba visiško emuliatoriaus nustatymo iš naujo.
- Atminties konfigūravimo parinktys nuo 128 MB iki 1024 MB.
- Nustatykite terminalo šrifto dydį.
- Įkelkite failus į emuliatorių (įskaitant CSV ir duomenų bazės ištraukas).
- Parsisiųsti emuliatoriaus failus.
- Išeinantis tinklo ryšys iš emuliatoriaus į internetą.
- Įeinančio tinklo tunelis į postgres prievadą 5432 emuliatoriaus viduje.
Apskritai visas projektas yra vienoje 12 MB momentinėje nuotraukoje, su kuria galima paleisti PostgreSQL serverį.
Kaip pripažįsta Postgres-wasm kūrėjai, vykdymo laikas nėra labai didelis, tačiau pats tikslas, kad PostgreSQL 14.5 būtų galima naudoti iš pilnos naršyklės su psql komandų eilutės sąsaja, buvo sėkmingai pasiektas.
Galiausiai, jei norite sužinoti daugiau apie tai , galite rasti išsamią informaciją šioje nuorodoje.