इस प्रोजेक्ट के बारे में
schemaui एक Rust लाइब्रेरी और CLI है जो JSON Schema दस्तावेज़ों (draft-07 संगत) को पूरी तरह से इंटरैक्टिव संपादकों में बदलता है। यह दो रेंडरिंग सतहें प्रदान करता है: एक Web UI (तीन-फलक लेआउट वाला एम्बेडेड SPA — schema नेविगेशन, फ़ॉर्म संपादक, लाइव JSON पूर्वावलोकन) और ratatui तथा crossterm द्वारा संचालित कीबोर्ड-प्रथम TUI। दोनों समान schema → फ़ॉर्म → सत्यापन पाइपलाइन साझा करते हैं, जो हर संपादन के तुरंत बाद सत्यापन प्रतिक्रिया देती है।
मुख्य क्षमताएं:
- $ref, definitions, patternProperties, enums, संख्यात्मक रेंज, नेस्टेड ऑब्जेक्ट/ऐरे, oneOf/anyOf वैरिएंट सहित समृद्ध schema को पार्स करता है
- सेक्शन और ओवरले: शीर्ष-स्तरीय गुण टैब बन जाते हैं, नेस्टेड ऑब्जेक्ट सेक्शन में सपाट हो जाते हैं, जटिल नोड समर्पित ओवरले संपादक खोलते हैं
- प्लग करने योग्य I/O: JSON/YAML/TOML ग्रहण करता है, stdout और/या किसी भी सक्षम प्रारूप में कई फ़ाइलों में उत्सर्जित करता है
- एम्बेडेड $schema, TOML #:schema, YAML language-server मॉडलाइन के माध्यम से कॉन्फ़िगर schema स्वतः पहचान
- दूरस्थ schema लोडिंग (केवल CLI, फ़ीचर-गेटेड)
- साथी स्किल a2ui-ask के माध्यम से AI एजेंट एकीकरण: एजेंट 0.0.0.0 से बंधे Web UI को लॉन्च करते हैं, उपयोगकर्ता लाइव सत्यापन के साथ ब्राउज़र फ़ॉर्म भरते हैं, उत्तर JSON ऑडिट ट्रेल के रूप में .schemaui/answers/ में लिखे जाते हैं
- एम्बेडिंग के लिए लाइब्रेरी API: Web के लिए schemaui::web::session, TUI के लिए SchemaUI::run, TuiFrontend के माध्यम से कस्टम फ्रंटएंड इंजेक्शन
- web और tui सबकमांड, मल्टी-डेस्टिनेशन आउटपुट, stdin/इनलाइन विनिर्देशों वाला CLI (schemaui-cli)
आर्किटेक्चर: io::input कॉन्फ़िगरेशन को पार्स/मर्ज करता है, schema लोडर/रिज़ॉल्वर फ़ॉर्म schema बनाता है, tui::state FormState/सेक्शन/रिड्यूसर प्रबंधित करता है, app::runtime इनपुट रूटिंग/ओवरले/स्थिति संभालता है, tui::view ratatui के माध्यम से रेंडर करता है। सत्यापन स्टार्टअप पर एक बार संकलित jsonschema::Validator का उपयोग करता है; प्रत्येक संपादन दस्तावेज़ का पुनर्निर्माण करता है, वैलिडेटर चलाता है, त्रुटियों को फ़ील्ड/वैश्विक स्थिति में भेजता है।
फ़ीचर फ़्लैग दर्शकों के अनुसार विभाजित हैं: schemaui-cli डिफ़ॉल्ट रूप से TUI + Web + दूरस्थ schema के साथ आता है; लाइब्रेरी क्रेट डिफ़ॉल्ट रूप से केवल tui + json के साथ आता है। json, yaml, toml फ़ीचर में से कम से कम एक सक्षम होना आवश्यक है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.