このプロジェクトについて
schemauiは、JSON Schemaドキュメント(draft-07互換)を完全にインタラクティブなエディタに変換するRustライブラリおよびCLIです。2つのレンダリングサーフェスを提供します。Web UI(3ペイン構成の埋め込みSPA — スキーマナビゲーション、フォームエディタ、ライブJSONプレビュー)と、ratatuiおよびcrosstermによるキーボードファーストのTUIです。どちらも同じschema → form → validateパイプラインを共有し、編集のたびに即時の検証フィードバックを提供します。
主な機能:
- $ref、definitions、patternProperties、enums、数値範囲、ネストされたオブジェクト/配列、oneOf/anyOfバリアントを含むリッチなスキーマを解析
- セクションとオーバーレイ: トップレベルのプロパティはタブになり、ネストされたオブジェクトはセクションにフラット化され、複雑なノードは専用のオーバーレイエディタを開く
- プラグ可能なI/O: JSON/YAML/TOMLを取り込み、stdoutおよび/または有効な任意の形式で複数のファイルに出力
- 埋め込み$schema、TOML #:schema、YAML language-server modelinesによる設定スキーマの自動検出
- リモートスキーマの読み込み(CLIのみ、機能ゲート付き)
- コンパニオンスキルa2ui-askによるAIエージェント統合: エージェントは0.0.0.0にバインドされたWeb UIを起動し、ユーザーはライブ検証付きのブラウザフォームに入力し、回答はJSON監査証跡として.schemaui/answers/に書き込まれる
- 埋め込み用ライブラリAPI: Web用のschemaui::web::session、TUI用のSchemaUI::run、TuiFrontendによるカスタムフロントエンド注入
- CLI(schemaui-cli): webおよびtuiサブコマンド、複数宛先出力、stdin/インライン仕様
アーキテクチャ: io::inputが設定を解析/マージし、schema loader/resolverがフォームスキーマを構築し、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.