Die Entwicklungen des Projekts Postgres WASM sind offen, ein Umfeld mit der Datenbank PostgreSQL zu schaffen, das im Browser lĂ€uft. Der zugehörige Code ist unter der MIT-Lizenz veröffentlicht. Es wird ein Toolset zur VerfĂŒgung gestellt, um eine funktionierende virtuelle Maschine mit einer abgespeckten Linux-Umgebung, dem PostgreSQL-Server 14.5 und den dazugehörigen Utilities (psql, pg_dump) zu erstellen. Die endgĂŒltige GröĂe des Builds betrĂ€gt etwa 30 MB.
Der Inhalt der virtuellen Maschine wird mithilfe von Buildroot-Skripten erstellt und im Browser mit dem Emulator v86 gestartet. FĂŒr die Interaktion mit den PostgreSQL-Utilities aus dem Browser wird eine Web-OberflĂ€che bereitgestellt. Um auf das im Browser laufende zu einem Server PostgreSQL ĂŒber das Netzwerk zuzugreifen und Netzwerkabfragen aus der virtuellen Maschine durchzufĂŒhren, wird ein Proxy verwendet, der den Verkehr ĂŒber die API Websocket weiterleitet.
Die Hauptfunktionen von Postgres WASM:
- Speichern und Wiederherstellen des Zustands der Datenbank aus einer Datei oder dem Browser-Speicher auf Basis von IndexedDB.
- Schneller Start aus einer Datei mit dem gespeicherten Zustand der virtuellen Maschine oder ein vollwertiger Start mit einem Neustart des Emulators.
- Möglichkeit zur Schaffung von virtuellen Maschine von 128 bis 1024 MB RAM.
- Einstellung der SchriftgröĂe im Web-Terminal.
- UnterstĂŒtzung fĂŒr das Hochladen von Dateien in die virtuelle Umgebung, einschlieĂlich der Möglichkeit, Datenbank-Dumps hochzuladen.
- UnterstĂŒtzung fĂŒr das Herunterladen von Dateien aus der virtuellen Umgebung.
- Einrichten eingehender und ausgehender Netzwerkverbindungen, Erstellen eines Tunnels zur Weiterleitung von Anfragen an den Netzwerkport 5432.
Zu den möglichen Anwendungsbereichen von Postgres WASM gehört die Erstellung von Demonstrations- und Schulungssystemen, die Organisation der Datenverarbeitung im Offline-Modus, die Datenanalyse im Offline-Modus, das Testen der FunktionalitÀt und Konfigurationen von PostgreSQL, das Erstellen einer lokalen Entwicklerumgebung, das Vorbereiten von Snapshots eines bestimmten Zustands der Datenbank zur Weitergabe an andere Entwickler oder den Support, das Testen der logischen Replikation von externen Datenbanken.

Quelle: opennet.ru
