Sunt disponibile progresele proiectului Postgres WASM, care dezvoltă un mediu cu baza de date PostgreSQL, funcționând în interiorul browserului. Codul asociat proiectului este deschis sub licența MIT. Se oferă un instrumentar pentru construirea unei mașini virtuale care funcționează în browser, cu un mediu Linux redus, server PostgreSQL 14.5 și utilitare aferente (psql, pg_dump). Dimensiunea totală a construcției este de aproximativ 30 MB.
Componentele mașinii virtuale sunt formate cu ajutorul scripturilor buildroot și se lansează în browser cu utilizarea emulatorului v86. Pentru interacțiunea cu utilitarele PostgreSQL din browser se furnizează o interfață web. Pentru a accesa PostgreSQL care rulează în browser, server se folosește un proxy care redirecționează traficul prin API Websocket pentru a efectua cereri de rețea din mașina virtuală.
Principalele funcționalități ale Postgres WASM:
- Salvarea și restaurarea stării bazei de date dintr-un fișier sau din stocarea browserului bazată pe IndexedDB.
- Lansare rapidă dintr-un fișier cu starea salvată a mașinii virtuale sau lansare completă cu repornirea emulatorului.
- Posibilitatea de a crea mașina virtuală între 128 și 1024 MB de memorie.
- Setarea dimensiunii fontului pentru terminalul web.
- Suport pentru încărcarea fișierelor în mediu virtual, inclusiv este posibil să se încarce dump-uri de baze de date.
- Suport pentru descărcarea fișierelor din mediu virtual.
- Configurarea conexiunilor de rețea de intrare și ieșire, crearea unui tunel pentru redirecționarea cererilor către portul de rețea 5432.
Printre posibilele domenii de aplicare ale Postgres WASM se numără crearea systemelor demo și de instruire, organizarea lucrului cu datele în mod offline, analiza datelor în modul offline, testarea funcționalității și configurațiilor PostgreSQL, crearea unui mediu local pentru dezvoltatori, pregătirea instantaneelor unei anumite stări a bazei de date pentru a fi trimise altor dezvoltatori sau la suportul tehnic, testarea replicării logice cu baze de date externe.

Sursa: opennet.ro
