Ferramentas · No ar (PWA)

Beluga

Bancos SQLite no navegador: crie, proteja com senha, consulte, povoe e transforme em API.

Gerenciador completo de bancos SQLite no navegador: criação com senha e PRAGMAs, grade editável, editor SQL, dados de teste, importar e exportar, e API automática.

Sobre o projeto

O que é Beluga

O Beluga é um gerenciador de bancos SQLite que roda inteiro no navegador. Você cria o banco escolhendo o modo do diário (WAL, DELETE e outros), o tamanho da página e dezenas de outros PRAGMAs, protege com senha se quiser, e trabalha nele com a estrutura sempre à vista (com o script de criação de cada tabela), uma grade editável, um editor SQL e um gerador de dados de teste. É a versão web do Beluga para Windows, com os mesmos recursos e uma diferença: no lugar do servidor local, ele monta a API do seu banco e entrega o servidor pronto para rodar fora do navegador.

Os bancos ficam no armazenamento privado do seu navegador, dentro de um worker, e nunca passam por um servidor. O SQLite roda em WebAssembly com a criptografia do SQLite3 Multiple Ciphers: um banco cifrado com o SQLCipher 4 abre no DB Browser for SQLite, no SQLCipher e no Beluga para Windows com a mesma senha, e o contrário também vale (conferido com o SQLCipher do Python). Dá para importar e exportar o arquivo .db, exportar o banco como script SQL, CSV ou JSON, e importar de volta.

É um aplicativo instalável (PWA): depois da primeira visita abre sem internet, e o servidor só entrega a página e conta, de forma anônima, quantas vezes cada ação foi feita (nunca o nome de um banco, de uma tabela ou um comando).

Recursos

O que o Beluga faz

Crie o banco do seu jeito

Escolha o modo do diário na criação (WAL, DELETE, TRUNCATE, PERSIST, MEMORY ou OFF), o tamanho da página, a codificação e dezenas de PRAGMAs, com quatro modelos prontos e uma explicação em português de cada ajuste, inclusive do que é arriscado.

Senha de verdade

Cifra o arquivo inteiro com o SQLite3 Multiple Ciphers: SQLCipher 4 (o padrão, compatível com o DB Browser e com o Beluga para Windows), ChaCha20, AES, Ascon, AEGIS e outras. Dá para proteger um banco comum, trocar a senha, trocar a cifra e tirar a senha. A senha nunca é guardada: sem ela, não há como recuperar.

Estrutura com o script sempre à vista

Tabelas, visões, índices e gatilhos, com o CREATE de cada um à mostra. Um construtor visual cria tabelas com chaves, valores padrão, chaves estrangeiras e regras de valor por coluna (CHECK), e dá para acrescentar, renomear e apagar colunas, mexer em índices e visões e recriar a tabela em passos seguros.

Grade editável

Edite as células direto na grade, com editor por tipo (sim e não, data, texto longo, NULL e BLOB com prévia de imagem), filtre por coluna, ordene, pagine, insira, duplique e exclua linhas com Desfazer. Um clique numa chave estrangeira leva à linha de origem.

Editor SQL feito para o navegador

Realce de sintaxe, autocompletar com as tabelas e colunas do seu banco, várias abas, histórico e consultas salvas, parâmetros, plano de execução explicado em português, confirmação antes de DROP e de DELETE sem WHERE, e um botão para cancelar a consulta que não termina. Resultados grandes rolam sem travar.

Dados de teste realistas

Gera linhas em seis idiomas (português do Brasil e de Portugal, inglês, espanhol, francês e alemão), a partir do nome e do tipo de cada coluna, com CPF, CNPJ e outros documentos de dígito verificador válido. A mesma semente repete o mesmo conjunto, e as chaves estrangeiras, os valores únicos e as regras CHECK são respeitados. Grava em lotes, com prévia, barra de progresso e cancelamento.

API automática do seu banco

Monta uma API REST a partir do esquema (listar com filtros e paginação, ler, criar, atualizar e apagar, com erros em JSON e CORS aberto), com console de testes e monitor de chamadas no próprio app, documentação OpenAPI e exemplos em cURL, JavaScript, Python e Dart. Baixa também um servidor de um arquivo só, sem dependências (Node 22.13 ou mais novo), que responde igual ao do navegador.

Exportar e importar

Baixe o arquivo .db (um banco cifrado continua cifrado), uma cópia sem senha ou com outra senha, o banco como script SQL (com opções de estrutura, dados, lotes e tabelas), ou tabelas e consultas em CSV, TSV, JSON e JSON Lines. Importe .db, scripts .sql e planilhas CSV com prévia do mapeamento das colunas. O script exportado refaz o mesmo banco.

Manutenção e ajustes depois de criado

Veja e mude os PRAGMAs de conexão com o banco aberto, recrie o arquivo com outro tamanho de página ou outro modo do diário, confira a integridade e as chaves estrangeiras órfãs, rode VACUUM e veja o tamanho de cada tabela.

Nada sai do seu navegador

Os bancos ficam no armazenamento privado do site e funcionam sem internet. O servidor recebe só nomes de evento e contagens de uma lista fechada, e nada com Não rastrear.

Uma abertura com personalidade

Uma beluga se banha numa corrente de dados enquanto o motor do banco carrega, com o progresso real. Há som e movimento discretos nas ações, com botões para desligar e respeito ao pedido de menos movimento do sistema.

Tecnologias

Por dentro do Beluga

SQLite3 Multiple Ciphers em WebAssembly

O SQLite 3.54 compilado para a web com o SQLite3 Multiple Ciphers (MIT) por cima, na versão oficial, com a soma SHA-256 conferida ao baixar. Roda num worker de módulo, então a página nunca trava, e suporta o WAL e os outros modos do diário.

Armazenamento privado do navegador (OPFS)

Os bancos são arquivos de verdade no armazenamento privado do site, não cópias em memória: o modo do diário, a cifra e o tamanho da página são os reais. Cada banco é exclusivo da aba que o abriu.

SQLCipher 4 compatível nos dois sentidos

Um banco cifrado aqui abre no SQLCipher do Python com a mesma senha e um banco do Beluga para Windows (SQLCipher com WAL) abre aqui. Mudar cifra, senha ou ajuste de arquivo copia o banco para um arquivo novo e só apaga o antigo se tudo der certo.

Editor próprio, sem biblioteca

Realce de sintaxe, autocompletar e a grade de resultados são módulos ES do projeto, sem CodeMirror e sem build. A lógica de SQL (divisão de scripts, regras CHECK, esquema) é pura e roda igual no Node, onde é testada sobre o próprio SQLite.

API em um arquivo só

O roteador da API é um módulo sem dependências que recebe uma Request e devolve uma Response. O mesmo texto roda no navegador, para o console, e dentro do server.mjs gerado, e um teste confere que as respostas dos dois são idênticas.

PWA e privacidade

Manifesto, ícones, service worker com cache próprio para o motor e atalho para criar um banco. Nenhum dado do banco sai do navegador; um teste confere que o corpo dos avisos de uso não leva nomes, comandos nem dados.

FAQ

Perguntas frequentes

Meus bancos são enviados para algum servidor?

Não. Eles ficam no armazenamento privado do navegador, dentro de um worker. O servidor só entrega a página e conta, de forma anônima, quantas vezes cada ação foi feita. Dá para conferir desligando a internet depois de abrir a página: tudo continua funcionando.

Posso perder meus bancos?

Sim, se você limpar os dados do site ou se o navegador precisar de espaço e apagar o armazenamento do site. O Beluga pede ao navegador para protegê-los, mas não há garantia: exporte o arquivo .db de vez em quando.

O banco cifrado abre em outros programas?

Com a cifra SQLCipher 4 (a padrão), sim: abre no DB Browser for SQLite, no SQLCipher e no Beluga para Windows com a mesma senha. As outras cifras (ChaCha20, AES, Ascon, AEGIS) só abrem em programas que usam o SQLite3 Multiple Ciphers.

Esqueci a senha. Dá para recuperar?

Não. A senha não é guardada em lugar nenhum e a cifra é de verdade: sem ela, os dados não podem ser lidos.

Por que não há um servidor local como no Beluga para Windows?

Porque um navegador não pode abrir uma porta. Em troca, o Beluga monta a API do seu banco, deixa você testá-la ali mesmo e baixa um servidor de um arquivo só para rodar no seu computador com o Node (22.13 ou mais novo).

Em quais navegadores funciona?

Foi desenvolvido e testado no Chrome. Precisa do armazenamento privado do site (OPFS) e de workers de módulo; em janelas privadas de alguns navegadores o armazenamento não está disponível e o app avisa. Safari, Firefox e celular ainda não foram testados.

Qual o tamanho máximo de um banco?

Não há um limite fixo: depende do espaço que o navegador reserva para o site (o app mostra o uso e a cota). Mudar a cifra ou os ajustes de arquivo precisa de espaço para duas cópias do banco.

Posso abrir o mesmo banco em duas abas?

Não: cada banco é aberto em modo exclusivo pela aba que o usa, e a outra espera. Isso evita corrupção e é o que permite o modo WAL no navegador.

O que é o servidor que o Beluga baixa?

Um arquivo server.mjs sem dependências, mais uma cópia do banco, o README e o openapi.json. Ele ouve só em 127.0.0.1 por padrão e, se você abrir para a rede, exige um token. Se o banco for cifrado, a cópia sai sem senha e o Beluga pede a sua confirmação antes.

Que licenças o Beluga usa?

O SQLite é de domínio público e o SQLite3 Multiple Ciphers é MIT. O aviso completo, com versões e somas de verificação, está no arquivo NOTICE.txt da pasta do motor.

É grátis? Tem limite de uso?

É grátis, sem cadastro e sem limite de uso: o trabalho é feito no seu aparelho e não no servidor.

Gostou do Beluga? Dá para apoiar o trabalho:

Continue explorando

Veja também

Todos os projetos