Sobre o projeto
JUI é um framework Java leve para criar aplicações web interativas com uma superfície de aplicação deliberadamente pequena. A API canônica vive sob `it.jui.framework` e segue um modelo simples: implemente `JuiApp`, receba um `UIContext` e descreva a aplicação usando chamadas Java compactas como `ui.title(...)`, `ui.textInput(...)`, `ui.button(...)`, `ui.table(...)` e `ui.map(...)`. O JUI então cuida de HTTP, renderização no navegador e estado de sessão.
Uma aplicação mínima implementa `JuiApp` e sobrescreve `run(UIContext ui)`, chamando métodos como `ui.title(...)` e `ui.text(...)`. Aplicações interativas podem ler entradas como `ui.textInput(...)` e `ui.slider(...)`, e reagir a `ui.button(...)`, que usa semântica de evento de uso único: um clique avalia para `true` na renderização acionada por esse clique e é então consumido. O estado do widget é chaveado deterministicamente a partir do rótulo do widget na API atual.
APIs orientadas a texto escapam HTML por padrão, enquanto HTML bruto deve ser explícito via `ui.html(...)`. Uma CLI suporta criar um arquivo de origem a partir do template canônico (`init`), executá-lo (`run`) e observá-lo (`watch`). O JUI compila o código-fonte da aplicação usando o JDK atual e o serve através de um servidor HTTP embutido.
O projeto é organizado em módulos: `jui-core` é a implementação atual e a API canônica, enquanto `jui-core-old` é uma implementação legada mantida apenas para fins históricos/referência. Outros módulos e código de playground podem ainda conter exemplos legados e não devem ser tratados como fonte de verdade da API.
Um objetivo de design declarado de longo prazo é tornar o JUI especialmente adequado para geração de código por LLMs locais pequenos, favorecendo poucos tokens de origem, pouco contexto de framework e APIs determinísticas. O princípio de design é descrito como "Mínimos tokens da intenção do usuário até a aplicação em execução." Espera-se que o trabalho futuro favoreça primitivas de aplicação de alta densidade semântica, um modelo/IR de aplicação compacto e validado, metadados de API gerados por máquina para contexto de LLM e empacotamento/implantação determinísticos.
O projeto compila com `mvn test`; a suíte de testes unitários normal deve terminar automaticamente, e testes manuais que iniciam um servidor bloqueante são mantidos desabilitados do ciclo de vida de testes unitários do Maven. O JUI é licenciado sob a Apache License 2.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.