Loam é um driver de banco de dados para conteúdo e metadados. O objetivo principal é fornecer uma camada de persistência transacional agnóstica, tratando arquivos como documentos estruturados em formatos familiares como Markdown, JSON, YAML e CSV.
Uma distinção crucial no Loam é a separação entre Armazenamento e Interpretação.
- Loam é o Bibliotecário: Sua função é organizar, recuperar e proteger os documentos. Ele gerencia onde os arquivos estão, seus metadados e a integridade do histórico.
- Seu App é o Leitor: Sua aplicação decide como apresentar o conteúdo para o usuário final, seja renderizando Markdown para HTML ou transformando JSON em uma interface interativa.
graph LR
subgraph "Backend (Loam)"
Loam[Loam Engine]
Storage[(Git / FS)]
Loam -->|Manage| Storage
end
subgraph "Application"
CLI
TUI
WebApp
end
Loam -->|Document + Metadata| CLI
Loam -->|Document + Metadata| TUI
Loam -->|Document + Metadata| WebApp
| Característica | SQLite | Loam | Texto Puro (os.IO) |
|---|---|---|---|
| Modelo Mental | Tabelas Relacionais | Documentos & Metadados | Bytes / Strings |
| Legibilidade | Binário (Opaco) | Humana (Texto Claro) | Humana |
| Histórico | Logs Binários | Git (Commit-based) | Nenhum |
| Uso Ideal | Dados Relacionais | Conteúdo, Configs, PKM | Scripts Simples |
Seus dados permanecem como arquivos simples no disco. O Loam garante que a aplicação funcione 100% offline e que o usuário mantenha o controle total sobre seus arquivos, sem lock-in.
Todo Save gera um registro no Git. Isso fornece um rastro de auditoria automático, suporte a rollbacks e garante que operações em lote sejam atômicas (ou salva tudo, ou nada).
O Loam implementa file-locking e transações para evitar que scripts concorrentes corrompam o repositório. Ele combina a flexibilidade de dados schemaless com a segurança de uma API tipada em Go.
Monitore mudanças no disco e reaja em tempo real. O Loam normaliza eventos do SO, filtra ruídos e garante que a aplicação responda instantaneamente a mudanças externas.
Preserve estruturas complexas mesmo em formatos planos. O Smart CSV, por exemplo, gerencia aninhamento de metadados sem exigir marshaling manual do desenvolvedor.
- Toolmakers: Desenvolvimento de bots, CLIs ou automações leves.
- Engenharia de Dados: Pipelines de ETL locais e processamento de arquivos estruturados.
- DevOps: Gerenciamento de configurações via GitOps e dotfiles.
- PKM (Personal Knowledge Management): Camada de storage para notas e bases de conhecimento.
- Rastreabilidade Semântica: Toda mudança deve ter uma razão. No Loam, isso se traduz em commits semânticos (Conventional Commits).
- Schema-on-Read: O armazenamento é flexível e dinâmico, mas a aplicação pode definir contratos rígidos via
TypedRepository[T]para garantir segurança em tempo de execução.