postgres-wasm, o servidor PostgreSQL rodando em um navegador com WebAssembly

postgres-wasm

Postgres-wasm é um projeto no qual o PostgreSQL foi portado para WebAssembly

Foi recentemente divulgado através de um anúncio no acesso gratuito ao postgres-wasm, que é um servidor PostgreSQL que é executado em um navegador e oferece um conjunto completo de recursos, incluindo persistência de estado no navegador, restauração de pg_dump e replicação lógica de um banco de dados remoto.

postgres-wasm pt um projeto lançado sob uma licença Open Source graças à qual PostgreSQL foi portado para WebAssembly. Esta é uma solução desenvolvida graças à colaboração entre a Supabase, provedora de banco de dados em nuvem, e a Snaplet, empresa especializada em programação de banco de dados.

“Hoje estamos lançando o postgres-wasm com nossos amigos da Snaplet”, disse o engenheiro da Supabase Mark Burggraf

Para quem não sabe postgres, eles deveriam saber que é um dos sistemas de gerenciamento de banco de dados de código aberto mais avançados. Ele é rico em recursos, com tipos de dados robustos, indexação poderosa e uma ampla variedade de funções internas que podem ser usadas para simplificar a pilha de dados e permitir que os desenvolvedores se concentrem na criação de seus aplicativos. O Postgres é mais do que um banco de dados relacional, tornou-se sua plataforma de dados confiável.

Sobre o Postgres-wasm

O Supabase não é o primeiro a fazer o Postgres funcionar em um navegador; esse título vai para a equipe da Crunchy Data que compartilhou sua opinião sobre HN um mês atrás. Em seu desejo de desenvolver uma versão de código aberto da versão proprietária da Crunchy Data, a Supabase fez uma parceria com a Snaplet para construir o Postgres-wasm.

Graças ao Postgres-wasm, o PostgreSQL pode ser executado diretamente através de um navegador Para navegação na Web, foi utilizada a distribuição Linux Buildroot, caracterizada por dimensões extremamente reduzidas, e o emulador v86 que permite replicar o funcionamento de um terminal x86.

Na parte de WebAssembly, destina-se a permitir que aplicativos de alto desempenho sejam construídos em páginas da web, “mas ele não faz suposições específicas da web ou fornece funcionalidades específicas da web, então também pode ser usado em outros ambientes. É um padrão aberto que visa dar suporte a qualquer idioma em qualquer sistema operacional, e na prática todos os idiomas mais populares já possuem pelo menos algum nível de suporte. Supabase usa v86 para executar sua VM dentro do navegador.

Executar o Postgres em um navegador é ótimo, mas conectar-se a ele com o PgAdmin é ainda melhor. Infelizmente, os navegadores bloqueiam o acesso à rede TCP da VM. Para contornar isso, O Supabase roteia o tráfego através de websockets. Eles usam um fork do Websockproxy que permite que o emulador se comunique com a Internet convertendo os dados enviados por uma porta websocket em pacotes TCP. O fork Websockproxy adiciona a capacidade de encapsular o servidor Postgres.

Recursos internos que se destacam do projeto, são mencionados:

  • Postgres 14.5, psql, pg_dump, etc
  • Salve e restaure o estado de/para um arquivo.
  • Salve e restaure o estado do Postgres para/do armazenamento do navegador (IndexedDB).
  • Inicialização rápida de um arquivo de status ou redefinição completa do emulador.
  • Opções de configuração de memória de 128 MB a 1024 MB.
  • Defina o tamanho da fonte para o terminal.
  • Carregue arquivos para o emulador (incluindo CSV e dumps de banco de dados).
  • Baixe os arquivos do emulador.
  • Conectividade de rede de saída do emulador para a Internet.
  • Túnel de rede de entrada para a porta postgres 5432 dentro do emulador.

Em geral, todo o projeto está contido em um único instantâneo de tamanho 12 MB para executar um servidor PostgreSQL.

Como os desenvolvedores do Postgres-wasm admitem, o desempenho do tempo de execução não é muito alto, mas em si o objetivo de tornar o PostgreSQL 14.5 utilizável a partir de um navegador completo com uma interface de linha de comando psql foi alcançado com sucesso.

Finalmente se você estiver interessado em saber mais sobre isso, você pode verificar os detalhes no link a seguir


Seja o primeiro a comentar

Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.