عن المشروع
يُعد schemaui مكتبة Rust وأداة CLI يحوّلان مستندات JSON Schema (المتوافقة مع draft-07) إلى محررات تفاعلية بالكامل. ويوفر سطحي عرض: واجهة ويب (SPA مضمنة بتخطيط من ثلاثة أجزاء — تنقل المخطط، ومحرر النماذج، ومعاينة JSON الحية) وواجهة TUI تعتمد على لوحة المفاتيح ومدعومة بـ ratatui وcrossterm. يشترك السطحان في خط المعالجة نفسه: مخطط ← نموذج ← تحقق، مما يقدّم ملاحظات تحقق فورية بعد كل تعديل.
القدرات الرئيسية:
- يحلل مخططات غنية تشمل $ref وdefinitions وpatternProperties وenums والنطاقات الرقمية والكائنات/المصفوفات المتداخلة ومتغيرات oneOf/anyOf
- الأقسام والطبقات: تتحول الخصائص عالية المستوى إلى علامات تبويب، وتُسطَّح الكائنات المتداخلة إلى أقسام، وتفتح العقد المعقدة محررات طبقات مخصصة
- إدخال/إخراج قابل للتوصيل: يقبل JSON/YAML/TOML، ويصدر إلى stdout و/أو ملفات متعددة بأي تنسيق مفعّل
- اكتشاف تلقائي لمخطط التكوين عبر $schema المضمن، وTOML #:schema، وسطور modelines الخاصة بخادم لغة YAML
- تحميل المخططات عن بُعد (في CLI فقط، ومقيّد بميزة)
- تكامل وكلاء الذكاء الاصطناعي عبر المهارة المرافقة a2ui-ask: يطلق الوكلاء واجهة الويب مرتبطة بـ 0.0.0.0، ويملأ المستخدمون نماذج المتصفح مع تحقق حي، وتُكتب الإجابات في .schemaui/answers/ بتنسيق JSON كسجل تدقيق
- واجهة برمجة مكتبة للتضمين: schemaui::web::session للويب، وSchemaUI::run لـ TUI، وحقن واجهة أمامية مخصصة عبر TuiFrontend
- CLI (schemaui-cli) مع أمرين فرعيين web وtui، وإخراج متعدد الوجهات، ومواصفات stdin/مضمنة
البنية: ي解析 io::input التكوين ويدمجه، ويبني محمّل/حالّ المخطط مخطط النموذج، وتدير tui::state حالة FormState والأقسام والمخفِّضات، ويعالج app::runtime توجيه الإدخال والطبقات والحالة، ويعرض tui::view عبر ratatui. يستخدم التحقق jsonschema::Validator الذي يُترجم مرة واحدة عند بدء التشغيل؛ وكل تعديل يعيد بناء المستند، ويشغّل المتحقق، ويغذي الأخطاء إلى حالة الحقل/الحالة العامة.
تنقسم أعلام الميزات حسب الجمهور: يعتمد schemaui-cli افتراضيًا على TUI + Web + المخطط عن بُعد؛ وتعتمد حزمة المكتبة افتراضيًا على tui + json فقط. يتطلب الأمر تفعيل ميزة واحدة على الأقل من json أو yaml أو toml.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.