このプロジェクトについて
JUIは、意図的に小さなアプリケーションサーフェスを備えた、インタラクティブなWebアプリケーションを作成するための軽量Javaフレームワークです。正規の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の下でライセンスされています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.