De ontwikkelingen van het Postgres WASM-project zijn geopend, dat een omgeving voor de PostgreSQL-database beheert die in de browser werkt. De code die aan het project is verbonden, is openbaar onder de MIT-licentie. Er wordt een toolkit aangeboden voor het bouwen van een werkende virtuele machine in de browser met een afgeslankte Linux-omgeving, PostgreSQL-server 14.5 en bijbehorende tools (psql, pg_dump). De uiteindelijke build heeft een grootte van ongeveer 30 MB.
De inhoud van de virtuele machine wordt gevormd met behulp van buildroot-scripts en wordt in de browser uitgevoerd met de v86-emulator. Voor interactie met PostgreSQL-tools vanuit de browser wordt een webinterface geleverd. Voor het aanspreken van de in de browser draaiende server PostgreSQL via het netwerk en het uitvoeren van netwerkverzoeken vanuit de virtuele machine wordt een proxy gebruikt die verkeer doorstuurt via de Websocket API.
Hoofdfuncties van Postgres WASM:
- Opslaan en herstellen van de status van de database uit een bestand of browseropslag op basis van IndexedDB.
- Snelle opstart vanuit een bestand met een opgeslagen status van de virtuele machine of een volledige opstart met herstart van de emulator.
- Mogelijkheid tot het toewijzen van een virtuele machine van 128 tot 1024 MB geheugen.
- Instelling van de lettergrootte van de webterminal.
- Ondersteuning voor het uploaden van bestanden naar de virtuele omgeving, inclusief het uploaden van database-dumps.
- Ondersteuning voor het downloaden van bestanden uit de virtuele omgeving.
- Instellen van inkomende en uitgaande netwerkverbindingen, het creƫren van een tunnel voor het doorsturen van verzoeken naar netwerkpoort 5432.
Onder de mogelijke toepassingsgebieden van Postgres WASM wordt het creƫren van demonstratie- en trainingssystemen genoemd, het organiseren van gegevensbeheer in offline-modus, data-analyse terwijl men offline is, het testen van functionaliteit en configuraties van PostgreSQL, het creƫren van een lokale ontwikkelaaromgeving, het voorbereiden van snapshots van een bepaalde database-status voor verzending naar andere ontwikkelaars of naar de supportdienst, het testen van logische replicatie met externe database-beheersystemen.

Bron: opennet.ru
