Sono aperti i progressi del progetto Postgres WASM, che sviluppa un ambiente con il database PostgreSQL operante all'interno del browser. Il codice associato al progetto è aperto con licenza MIT. Viene offerto uno strumento per assemblare una macchina virtuale funzionante nel browser con un ambiente Linux ridotto, un server PostgreSQL 14.5 e utilità accessorie (psql, pg_dump). La dimensione dell'assemblaggio finale è di circa 30 MB.
Il contenuto della macchina virtuale è generato tramite script buildroot e viene eseguito nel browser utilizzando l'emulatore v86. Per interagire con le utilità di PostgreSQL dal browser è fornita un'interfaccia web. Per accedere a PostgreSQL in esecuzione nel browser server e per eseguire richieste di rete dalla macchina virtuale viene utilizzato un proxy che instrada il traffico tramite API Websocket.
Le principali caratteristiche di Postgres WASM:
- Salvataggio e ripristino dello stato del database da file o dallo storage del browser basato su IndexedDB.
- Avvio rapido da un file con stato salvato della macchina virtuale o avvio completo con riavvio dell'emulatore.
- Possibilità di separazione macchina virtuale da 128 a 1024 MB di memoria.
- Impostazione della dimensione del carattere del terminale web.
- Supporto per il caricamento di file nell'ambiente virtuale, incluso il caricamento di dump di database.
- Supporto per il download di file dall'ambiente virtuale.
- Configurazione delle connessioni di rete in entrata e in uscita, creazione di un tunnel per inoltrare le richieste alla porta di rete 5432.
Tra i possibili ambiti di applicazione di Postgres WASM si citano la creazione di sistemi dimostrativi e formativi, l'organizzazione del lavoro con i dati in modalità offline, l'analisi dei dati in modalità offline, il testing delle funzionalità e delle configurazioni di PostgreSQL, la creazione di un ambiente locale per sviluppatori, la preparazione di snapshot di uno stato specifico del database da inviare ad altri sviluppatori o al supporto, il testing della replica logica da database esterni.

Fonte: opennet.ru
