Estão disponíveis os desenvolvimentos do projeto Postgres WASM, que cria um ambiente com o SGBD PostgreSQL, operando dentro do navegador. O código relacionado ao projeto está sob a licença MIT. A ferramenta oferece um compilador para montar uma máquina virtual que funciona no navegador, com um ambiente Linux reduzido, servidor PostgreSQL 14.5 e utilitários associados (psql, pg_dump). O tamanho da compilação final é de aproximadamente 30 MB.
O conteúdo da máquina virtual é formado através de scripts buildroot e é iniciado no navegador utilizando o emulador v86. Para interagir com as utilidades do PostgreSQL a partir do navegador, é fornecida uma interface web. Para acessar o PostgreSQL executado no navegador servidor para realizar solicitações de rede a partir da máquina virtual, é utilizado um proxy que direciona o tráfego por meio da API Websocket.
Principais recursos do Postgres WASM:
- Salvar e restaurar o estado do SGBD de um arquivo ou do armazenamento do navegador baseado em IndexedDB.
- Início rápido a partir de um arquivo com o estado salvo da máquina virtual ou inicialização completa com reinício do emulador.
- Possibilidade de alocação de máquina virtual de 128 a 1024 MB de memória.
- Configuração do tamanho da fonte do terminal web.
- Suporte ao upload de arquivos para o ambiente virtual, incluindo a possibilidade de carregar dumps de banco de dados.
- Suporte ao download de arquivos do ambiente virtual.
- Estabelecimento de conexões de rede de entrada e saída, criação de um túnel para direcionar 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 estando em modo offline, teste de funcionalidades e configurações do PostgreSQL, criação de um ambiente local para desenvolvedores, preparação de instantâneas de um determinado estado do SGBD para envio a outros desenvolvedores ou ao suporte técnico, teste de replicação lógica com SGBDs externos.

Fonte: opennet.ru
