Sobre o projeto
schemaui é uma biblioteca e CLI em Rust que transforma documentos JSON Schema (compatíveis com draft-07) em editores totalmente interativos. Ele oferece duas superfícies de renderização: uma UI Web (SPA embutida com layout de três painéis — navegação de schema, editor de formulário e pré-visualização JSON ao vivo) e uma TUI orientada ao teclado, baseada em ratatui e crossterm. Ambas compartilham o mesmo pipeline schema → formulário → validação, fornecendo feedback de validação imediato após cada edição.
Capacidades principais:
- Analisa schemas ricos, incluindo $ref, definitions, patternProperties, enums, intervalos numéricos, objetos/arrays aninhados e variantes oneOf/anyOf
- Seções e overlays: propriedades de nível superior viram abas, objetos aninhados são achatados em seções e nós complexos abrem editores overlay dedicados
- I/O plugável: ingere JSON/YAML/TOML e emite para stdout e/ou múltiplos arquivos em qualquer formato habilitado
- Detecção automática de schema de configuração via $schema embutido, #:schema em TOML e modelines de language server em YAML
- Carregamento remoto de schemas (apenas CLI, atrás de feature gate)
- Integração com agentes de IA via skill companheira a2ui-ask: agentes iniciam a UI Web vinculada a 0.0.0.0, usuários preenchem formulários no navegador com validação ao vivo e as respostas são gravadas em .schemaui/answers/ como trilha de auditoria JSON
- API de biblioteca para incorporação: schemaui::web::session para Web, SchemaUI::run para TUI e injeção de frontend personalizado via TuiFrontend
- CLI (schemaui-cli) com subcomandos web e tui, saída para múltiplos destinos e especificações via stdin/inline
Arquitetura: io::input analisa/mescla configurações, o loader/resolvedor de schema constrói o schema de formulário, tui::state gerencia FormState/seções/reducers, app::runtime cuida de roteamento de entrada/overlays/status e tui::view renderiza via ratatui. A validação usa jsonschema::Validator compilado uma vez na inicialização; cada edição reconstrói o documento, executa o validador e envia erros para o status de campo/global.
Feature flags são separadas por público: schemaui-cli habilita por padrão TUI + Web + schema remoto; o crate de biblioteca habilita por padrão apenas tui + json. Requer pelo menos um dos recursos json, yaml ou toml habilitado.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.