Foram abertos os desenvolvimentos do projeto Postgres WASM, que desenvolve um ambiente com o SGBD PostgreSQL rodando dentro do navegador. O código associado ao projeto é de código aberto sob a licença do MIT. Ele oferece ferramentas para montar uma máquina virtual rodando em um navegador com ambiente Linux simplificado, um servidor PostgreSQL 14.5 e utilitários relacionados (psql, pg_dump). O tamanho final da compilação é de cerca de 30 MB.
A máquina virtual é construída usando scripts buildroot e iniciada em um navegador usando um emulador v86. Um web shell é fornecido para interagir com utilitários PostgreSQL a partir do navegador. Para acessar o servidor PostgreSQL em execução no navegador pela rede e realizar solicitações de rede a partir de uma máquina virtual, é utilizado um proxy que encaminha o tráfego por meio da API Websocket.
Principais características do Postgre WASM:
- Salvar e restaurar o estado do DBMS a partir de um arquivo ou armazenamento baseado em navegador baseado em IndexedDB.
- Lançamento rápido a partir de um arquivo com o estado salvo da máquina virtual ou lançamento completo com reinicialização do emulador.
- Capacidade de alocar de 128 a 1024 MB de memória para uma máquina virtual.
- Configurando o tamanho da fonte do terminal web.
- Suporte para upload de arquivos em um ambiente virtual, incluindo a capacidade de upload de dumps de banco de dados.
- Suporte para download de arquivos de um ambiente virtual.
- Estabelecendo conexões de rede de entrada e saída, criando um túnel para encaminhamento de chamadas para a porta de rede 5432.
Entre as possíveis áreas de aplicação do Postgres WASM estão a criação de sistemas de demonstração e treinamento, organização do trabalho com dados em modo offline, análise de dados em modo offline, teste de funcionalidades e configurações do PostgresSQL, criação de um ambiente de desenvolvedor local, preparação de fatias de um determinado Estado do SGBD para envio a outros desenvolvedores ou serviço de suporte, testando replicação lógica de SGBDs externos.
Fonte: opennet.ru