这个项目能做什么

JUI是一个轻量级Java框架,用于创建交互式Web应用,其应用表面刻意保持小巧。规范API位于`it.jui.framework`下,遵循简单模型:实现`JuiApp`,接收`UIContext`,并使用诸如`ui.title(...)`、`ui.textInput(...)`、`ui.button(...)`、`ui.table(...)`和`ui.map(...)`等紧凑Java调用来描述应用。JUI随后处理HTTP、浏览器渲染和会话状态。 一个最小应用实现`JuiApp`并重写`run(UIContext ui)`,调用`ui.title(...)`和`ui.text(...)`等方法。交互式应用可以读取`ui.textInput(...)`和`ui.slider(...)`等输入,并对`ui.button(...)`做出反应,后者使用一次性事件语义:点击对该点击触发的渲染求值为`true`,然后被消耗。控件状态根据当前API中的控件标签确定性键控。 面向文本的API默认转义HTML,而原始HTML必须通过`ui.html(...)`显式指定。CLI支持从规范模板创建源文件(`init`)、运行(`run`)和监视(`watch`)。JUI使用当前JDK编译应用源码,并通过内置HTTP服务器提供服务。 项目按模块组织:`jui-core`是当前实现和规范API,而`jui-core-old`是仅用于历史/参考目的的遗留实现。其他模块和游乐场代码可能仍包含遗留示例,不应视为API的权威来源。 一个明确的长期设计目标是使JUI特别适合小型本地LLM进行代码生成,倾向于少量源令牌、少量框架上下文和确定性API。设计原则被描述为“从用户意图到运行应用的最小令牌数”。未来工作预计将偏向高语义密度的应用原语、紧凑的验证应用模型/IR、用于LLM上下文的机器生成API元数据,以及确定性打包/部署。 项目使用`mvn test`构建;正常单元测试套件必须自动终止,而启动阻塞服务器的手动测试在Maven单元测试生命周期中保持禁用。JUI根据Apache License 2.0许可。