इस प्रोजेक्ट के बारे में

JUI एक हल्का 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 के तहत लाइसेंस प्राप्त है।