# DBFlux
[English](../../README.md) · [Español](../es/README.md) · [한국어](../ko/README.md) · [简体中文](../zh_Hans/README.md) · **Português (Brasil)**
Uma plataforma de dados extensível e voltada ao teclado, entregue como um cliente desktop em Rust + GPUI.
**[dbflux.dev](https://dbflux.dev)** · [Documentação](https://docs.dbflux.dev/) · [Instalar](https://docs.dbflux.dev/install/)
## Visão geral
O DBFlux é um cliente desktop de código aberto com drivers integrados para bancos de dados relacionais e não relacionais. Seus contratos centrais são neutros em relação ao driver, e drivers externos podem se integrar por RPC.
O cliente prioriza desempenho, uma UX limpa e fluxos de trabalho voltados ao teclado. O objetivo de longo prazo é ter um único cliente totalmente open source para todos os bancos de dados com que você trabalha.

## Documentação
Tudo abaixo é publicado em **[docs.dbflux.dev](https://docs.dbflux.dev/)**, renderizado a partir
destes mesmos arquivos, com busca e seletor de versão. Os links aqui apontam para a fonte; leia no
site se preferir. A documentação ainda está em inglês: os links levam às páginas originais.
Escolha o caminho que corresponde ao que você quer fazer.
### Comece aqui
| Objetivo | Guia |
| ------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Criar uma conexão | Comece pelo [Primeiros passos](../GETTING_STARTED.md). Para túneis SSH, proxies, AWS SSO e value sources, use [Conectando — configuração avançada](../CONNECTIONS.md). |
| Executar consultas e seguir fluxos comuns | Siga o [Guia de uso](../USAGE.md) para consultar, navegar pelos resultados, criar gráficos, exportar e usar a navegação por teclado. |
| Ver eventos de auditoria | Abra o visualizador de auditoria com o [guia do visualizador de auditoria](../AUDIT.md#audit-viewer). |
| Usar o MCP | Siga o [Guia de integração de IA + MCP](../MCP_AI_INTEGRATION.md). |
| Conferir o suporte e as limitações de drivers | Use a [Visão geral dos drivers](../DRIVERS.md), a visão canônica de recursos e limitações. |
### Mais guias do usuário
- [Configurações e hooks](../SETTINGS.md) — configurações, hooks de conexão e perfis de acesso
- [Dados e privacidade](../../PRIVACY.md#your-data-on-this-machine) — armazenamento de dados e segredos, backup e redefinição
- [Scripts em Lua](../LUA.md) — o runtime Lua embutido para hooks
### Contribuidores
- [Contribuindo](../../CONTRIBUTING.md) — configuração, verificações e fluxo de contribuição
- [Conceitos-chave](../CONCEPTS.md) — o modelo mental resumido de contratos e limites de subsistemas
- [Criação de drivers](../DRIVER_AUTHORING.md) — escolha e implemente um driver Rust integrado ou um driver externo via RPC
- [Arquitetura](../../ARCHITECTURE.md) — o mapa canônico de arquitetura e crates, incluindo limites entre crates e fluxos entre crates
### Traduções
O DBFlux é traduzido no [Hosted Weblate](https://hosted.weblate.org/engage/dbflux/).
Os catálogos ficam em `crates/dbflux_i18n/locales/`, um arquivo YAML por idioma, e
as atualizações de tradução chegam como pull requests vindos do Weblate.
[Contribuindo com traduções](../TRANSLATIONS.md) cobre todas as superfícies traduzíveis:
a interface do aplicativo, a documentação e o site.
### Referência
- [Gráficos](../CHARTS.md) — tipos de gráfico, tipos de coluna e detecção automática de eixos
- [Dashboards](../DASHBOARDS.md) — dashboards, gráficos salvos, métricas de instância e inspetores
- [Auditoria](../AUDIT.md) — esquema de eventos de auditoria e redação de dados sensíveis
- [Protocolo RPC de drivers](../DRIVER_RPC_PROTOCOL.md)
- [Configuração de serviços RPC](../RPC_SERVICES_CONFIG.md)
- [Processo de release](../RELEASE.md)
- [Estilo de código](../../CODE_STYLE.md)
- [Instruções para agentes](../../AGENTS.md)
- [Instruções para o Claude](../../CLAUDE.md)
## Instalação
```bash
# Linux — instalar em /usr/local
curl -fsSL https://raw.githubusercontent.com/0xErwin1/dbflux/main/scripts/install.sh | sudo bash
```
Os pacotes para cada plataforma — tarball, AUR, `.deb`, `.rpm`, AppImage, Nix, DMG do macOS
e instalador do Windows — estão na página de [Releases](https://github.com/0xErwin1/dbflux/releases).
O guia completo, incluindo os passos do Gatekeeper e do SmartScreen para as versões
sem assinatura do macOS e do Windows, está em [Instalando o DBFlux](../INSTALL.md).
## Funcionalidades
### Suporte a bancos de dados
- **PostgreSQL** com modos SSL/TLS (Disable, Prefer, Require)
- **Amazon Redshift** com SQL somente leitura sobre o protocolo de rede do PostgreSQL, túnel SSH e certificados TLS/cliente
- **MySQL** / MariaDB
- **SQLite** para arquivos de banco de dados locais
- **Microsoft SQL Server** (TDS) com TLS, roteamento de instância nomeada via SQL Browser e introspecção de múltiplos schemas
- **MongoDB** com navegação de coleções, CRUD de documentos e geração de consultas de shell
- **Redis** com navegação de chaves de todos os tipos (String, Hash, List, Set, Sorted Set, Stream)
- **DynamoDB** com navegação de tabelas, CRUD de itens e autenticação AWS
- **InfluxDB** v1 e v2 (InfluxQL na v1, InfluxQL + Flux na v2)
- **ClickHouse** e ClickHouse Cloud sobre HTTP(S), com descoberta de bancos/tabelas, SELECTs visuais e execução explícita de SQL bruto
- **TursoDB** e libSQL (`sqld`) sobre HTTP, com descoberta de schema, CRUD tipado e transações interativas por aba do editor
- **CloudWatch Logs** com navegação de grupos/streams de log e streaming de eventos
- **Amazon S3** com navegação de buckets, pré-visualização/edição de objetos, CRUD completo e URLs pré-assinadas, incluindo endpoints compatíveis com S3 (Cloudflare R2, MinIO)
- **Drivers externos via RPC** (registre drivers fora de processo pelo [Protocolo RPC de drivers](../DRIVER_RPC_PROTOCOL.md))
Veja [docs/DRIVERS.md](../DRIVERS.md) para a matriz completa de recursos e as limitações por driver.
### Interface do usuário
- Workspace baseado em documentos com várias abas de resultados (como DBeaver/VS Code)
- Barra lateral recolhível e redimensionável com o comando ToggleSidebar (Ctrl+B)
- Navegador em árvore de schemas com carregamento sob demanda para bancos grandes
- Metadados em nível de schema: índices, chaves estrangeiras, restrições, tipos personalizados (PostgreSQL)
- Pasta de stored procedures / rotinas por schema (drivers que as expõem)
- Editor SQL com várias abas, realce de sintaxe e execução de múltiplas instruções (um conjunto de resultados por instrução, quando o driver oferece suporte)
- Tabela de dados virtualizada com redimensionamento de colunas, rolagem horizontal e ordenação
- Navegador de tabelas com filtros WHERE, LIMIT personalizado e paginação
- Painel lateral do workspace para detalhes de linha/documento
- Menu de contexto "Copy as Query" para copiar INSERT/UPDATE/DELETE como SQL, shell do MongoDB ou comandos do Redis
- Janela de pré-visualização de consulta com realce de sintaxe específico da linguagem
- Paleta de comandos com busca aproximada
- Sistema próprio de notificações toast com fechamento automático
- Painel de tarefas em segundo plano
- Restauração de sessão: as abas abertas são restauradas na inicialização, e um rascunho recuperado que difere do arquivo nunca o sobrescreve
### Construtor visual de consultas
- Construtor de SELECT no painel lateral direito: projeção, joins, uma árvore aninhada de predicados WHERE, ORDER BY e LIMIT/OFFSET, com pré-visualização do SQL parametrizado em tempo real
- GROUP BY com agregações (COUNT, SUM, AVG, MIN, MAX) e HAVING
- Construtor visual de UPDATE / DELETE com políticas de alteração (somente leitura / exige aprovação) e execução em blocos, cancelável
- Autocompletar com reconhecimento de schema nos campos do construtor e no filtro WHERE dos resultados
- Filtros relacionais na barra de filtros dos resultados por caminhos de chave estrangeira com pontos (p. ex. `created_by.email LIKE '%@acme.com'`)
- Edição inline de célula e exclusão de linha em resultados gerados pelo construtor quando eles correspondem 1:1 a uma única tabela
- Consultas visuais salvas por conexão
- Somente drivers SQL (SQLite, PostgreSQL, MySQL/MariaDB, SQL Server); neutro em relação ao driver por construção
### Gráficos e visualização
- Crie gráficos de qualquer resultado de consulta ou coleção: Line, Bar, Scatter, Area, Stacked Bar e Pie
- Detecção automática de eixos a partir dos tipos de coluna (eixo X de timestamp, séries Y numéricas) — sem heurísticas por driver
- Gráficos salvos que reabrem como uma aba de documento própria
- Dashboards: organize gráficos salvos, divisores e painéis de inspetor em uma grade de 12 colunas com um intervalo de tempo compartilhado
- Visão geral da instância, somente leitura, por conexão — métricas de servidor ao vivo e inspetores tabulares, com "Save as editable"; PostgreSQL, MySQL/MariaDB, MongoDB, Redis e SQL Server incluem catálogos de instância
- Navegue e importe dashboards de provedores externos (CloudWatch)
- Veja [docs/CHARTS.md](../CHARTS.md) e [docs/DASHBOARDS.md](../DASHBOARDS.md) para mais detalhes
### Conectividade e acesso
- Túneis SSH com autenticação por chave, senha e agente; perfis de túnel SSH reutilizáveis
- Túneis de proxy SOCKS5 / HTTP CONNECT com perfis de proxy reutilizáveis
- Provedores de acesso gerenciado (AWS SSM) para conectar sem expor portas
- Perfis de autenticação orientados por provedor (p. ex. AWS SSO/shared/static), com importação de `~/.aws/config`
- Hooks de conexão em PreConnect/PostConnect/PreDisconnect/PostDisconnect, executáveis como comando, script ou Lua em processo
### Integração com IA e MCP
- Servidor Model Context Protocol (MCP) integrado (`dbflux mcp`) para clientes de IA
- Camada de governança: classificação de operações, motor de funções/políticas, clientes confiáveis e fluxo de aprovação humana para operações de escrita/destrutivas
- Veja [docs/MCP_AI_INTEGRATION.md](../MCP_AI_INTEGRATION.md)
### Auditoria e scripts
- Log de auditoria em SQLite para consultas, conexões, hooks, scripts, MCP, governança e eventos de configuração, com ocultação de dados sensíveis e impressão digital de consultas — veja [docs/AUDIT.md](../AUDIT.md)
- Relato centralizado de erros para o usuário: as falhas aparecem como um toast com um ID de correlação e uma ação "View in Audit", acendem um selo de erro na barra de status e são correlacionadas com a linha de auditoria correspondente
- Scripts Lua, Python e Bash são executados como documentos com saída transmitida ao vivo — veja [docs/LUA.md](../LUA.md)
### Navegação por teclado
- Navegação estilo Vim (`j`/`k`/`h`/`l`) em todo o app
- Atalhos sensíveis ao contexto (Document, Sidebar, BackgroundTasks)
- Foco de documento com navegação interna entre editor e resultados
- Barra de ferramentas dos resultados: `f` para focar, `h`/`l` para navegar, `Enter` para editar/executar, `Esc` para sair
- Alternar a barra lateral com `Ctrl+B`
- Troca de abas (ordem MRU) com `Ctrl+Tab` / `Ctrl+Shift+Tab`
### Gerenciamento de consultas
- Histórico de consultas com data e hora
- Consultas salvas com favoritos
- Busca no histórico e nas consultas salvas
### Exportação
- Exportação baseada no formato do resultado: CSV, JSON (formatado/compacto), Text, Binary (raw/hex/base64)
- O formato de exportação é determinado pelo tipo do resultado (tabela, JSON, texto, binário)
## Desenvolvimento
### Pré-requisitos
No Linux, o linker `mold` é **obrigatório** para builds locais: o
`.cargo/config.toml` do repositório liga o target `x86_64-unknown-linux-gnu` com
`-fuse-ld=mold` para reduzir o tempo de linkedição e o uso de memória nos mais de 60
crates do workspace. O dev shell do Nix o fornece automaticamente; em
configurações sem Nix, instale-o pelo seu gerenciador de pacotes (incluído abaixo). Windows e
macOS usam o linker padrão e não são afetados.
**Ubuntu/Debian:**
```bash
sudo apt install pkg-config libssl-dev libdbus-1-dev libxkbcommon-dev mold
```
**Fedora:**
```bash
sudo dnf install pkg-config openssl-devel dbus-devel libxkbcommon-devel mold
```
**Arch:**
```bash
sudo pacman -S pkg-config openssl dbus libxkbcommon mold
```
**macOS:**
```bash
# Xcode Command Line Tools (obrigatório)
xcode-select --install
```
**Windows:**
```powershell
# Visual Studio Build Tools com o workload de C++ (obrigatório)
# Baixe em: https://visualstudio.microsoft.com/visual-cpp-build-tools/
```
### Compilar
```bash
cargo build -p dbflux --release
```
### Executar
```bash
cargo run -p dbflux
```
### Comandos
```bash
cargo check --workspace # Verificação de tipos
python3 scripts/lint.py clippy # Lint
python3 scripts/lint.py fmt # Formatação
cargo test --workspace # Testes
```
### Testes mais rápidos com nextest
O [`cargo-nextest`](https://nexte.st) é o executor de testes recomendado para este
workspace: ele executa cada teste em seu próprio processo, em um pool global, o que é
bem mais rápido que o `cargo test` em um workspace deste tamanho. O dev shell do Nix
o fornece; caso contrário, instale-o a partir de .
```bash
cargo nextest run --workspace # testes unitários + de integração
cargo test --doc --workspace # doctests (o nextest não os executa)
```
Os testes de integração ao vivo (normalmente marcados com `#[ignore]`) usam outra flag no nextest:
```bash
cargo nextest run -p dbflux_driver_sqlite --run-ignored all
```
### Site
O site em `web/` é um build estático do Astro. Ele lê `docs/`, os READMEs dos drivers,
`ARCHITECTURE.md` e `CONTRIBUTING.md` diretamente do git, um conjunto por versão publicada, então editar um
documento é tudo o que é preciso para mudar o que o site mostra.
```bash
cd web
pnpm install
pnpm dev # servidor local
pnpm build # saída estática em web/dist
pnpm check # tipos
pnpm format # prettier
```
As versões publicadas são declaradas em `web/versions.json`. Cada entrada nomeia uma git ref; a
versão do produto exibida para ela é lida do `Cargo.toml` dessa ref.
`DOCS_MODE` decide onde a documentação é servida: `embedded` (o padrão, tudo em uma
única origem sob `/docs/`), ou `site` e `docs` para uma implantação dividida entre dois hosts. O
desenvolvimento local usa o padrão, então um único comando ainda sobe o site inteiro.
### Dev shell do Nix
Se você usa Nix, pode entrar em um dev shell com todas as dependências:
```bash
# Com flakes
nix develop
# Tradicional
nix-shell
```
## Licença
MIT & Apache-2.0. O nome e o logotipo do DBFlux são cobertos pela [Política de marca](../../TRADEMARK.md), e não pela licença do código.
O DBFlux não coleta dados. Veja a [Política de privacidade](../../PRIVACY.md).
## Histórico de estrelas
[](https://star-history.com/#0xErwin1/dbflux)
## Colaboradores
[](https://github.com/0xErwin1/dbflux/graphs/contributors)