a2ui 0.3.0

A2UI (Agent to UI) โ€” render JSON streaming UIs authored by AI agents (ratatui + Slint + egui + Bevy + Iced + Dioxus backends)
Documentation
# a2ui

[![crates.io](https://img.shields.io/crates/v/a2ui.svg)](https://crates.io/crates/a2ui)
[![docs.rs](https://docs.rs/a2ui/badge.svg)](https://docs.rs/a2ui)
[![MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/Liangdi/a2ui/blob/master/LICENSE)

[English](README_EN.md) | ไธญๆ–‡

> ๐Ÿ“ฆ **a2ui** crate ็”Ÿๆ€ ยท umbrella crate(็ปŸไธ€ๅ…ฅๅฃ)
>
> ่ฟ™ๆ˜ฏ [`a2ui`]https://crates.io/crates/a2ui workspace ็š„ไผž crate,ๆŠŠๅ„ๅญ crate ้‡ๆ–ฐๅฏผๅ‡บๅˆฐ็จณๅฎš็š„ `a2ui::core` / `a2ui::tui` ่ทฏๅพ„ไธ‹ใ€‚ๅฎŒๆ•ดไป‹็ป่ง[ๆ น็›ฎๅฝ• README]https://github.com/Liangdi/a2ui#readmeใ€‚

[A2UI (Agent to UI) v1.0](https://github.com/a2ui-project/a2ui) ๅ่ฎฎ็š„ Rust ๅฎž็Žฐ:ๆธฒๆŸ“็”ฑ AI Agent ๅŠจๆ€็”Ÿๆˆใ€JSON ๆตๅผ้ฉฑๅŠจ็š„็”จๆˆท็•Œ้ขใ€‚ๆœฌ crate ๆ˜ฏ **umbrella**,ไธ€่กŒไพ่ต–ๅณๅฏๆ‹ฟๅˆฐๆ ธๅฟƒๅฑ‚ไธŽ้ป˜่ฎค็ปˆ็ซฏๅŽ็ซฏ;Slint / egui ๆกŒ้ขๅŽ็ซฏๆŒ‰้œ€ๅœจ feature ๅŽๅผ€ๅฏใ€‚

## ็”Ÿๆ€ๅ…จๆ™ฏ

```
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  apps:  a2ui-gallery (TUI)   a2ui-slint-gallery   a2ui-egui-gallery   โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  โ–ถ a2ui  (umbrella: re-export core + tui [+ slint] [+ egui])          โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  backends:   a2ui-tui (ratatui)   a2ui-slint   a2ui-egui              โ”‚
โ”‚  a2ui-base  (ๆก†ๆžถๆ— ๅ…ณ:Protocol / Model / Catalog / Processor)         โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
```

| ๅญ crate | ไฝœ็”จ | ๅœจ umbrella ไธ‹็š„่ทฏๅพ„ |
|----------|------|----------------------|
| [`a2ui-base`]https://crates.io/crates/a2ui-base | ๆก†ๆžถๆ— ๅ…ณๆ ธๅฟƒๅฑ‚ | `a2ui::core` |
| [`a2ui-tui`]https://crates.io/crates/a2ui-tui | ratatui ็ปˆ็ซฏๅŽ็ซฏ(้ป˜่ฎค) | `a2ui::tui` |
| [`a2ui-slint`]https://crates.io/crates/a2ui-slint | Slint ๆกŒ้ขๅŽ็ซฏ(ๅฏ้€‰) | `a2ui::slint`(`slint` feature) |
| [`a2ui-egui`]https://crates.io/crates/a2ui-egui | egui ๆกŒ้ขๅŽ็ซฏ(ๅฏ้€‰) | `a2ui::egui`(`egui` feature) |

> ้ป˜่ฎคๅช re-export `core` + `tui`ใ€‚ไธคไธชๆกŒ้ขๅŽ็ซฏ่พƒ้‡(Slint ๅทฅๅ…ท้“พ / winit + glow),ๆ•…ๆŒ‰้œ€ๅผ€ๅฏใ€‚

## ็‰นๆ€ง

| ็‰นๆ€ง | ่ฏดๆ˜Ž | ๅฏ็”จ |
|------|------|------|
| `slint` | ๆŠŠ Slint ๅŽ็ซฏ re-export ไธบ `a2ui::slint` | `--features slint` |
| `egui` | ๆŠŠ egui ๅŽ็ซฏ re-export ไธบ `a2ui::egui` | `--features egui` |
| `audio` | ่ฝฌๅ‘็ป™ `a2ui-tui` ็š„็œŸๅฎž้Ÿณ้ข‘ๆ’ญๆ”พ | `--features audio` |

## ็”จๆณ•

```bash
cargo add a2ui            # ๆ ธๅฟƒ + ้ป˜่ฎค็ปˆ็ซฏๅŽ็ซฏ
cargo add a2ui --features egui   # ้ขๅค–ๅผ€ๅฏ egui ๆกŒ้ขๅŽ็ซฏ
```

```rust
// ่ทฏๅพ„ไฟๆŒ็จณๅฎš โ€”โ€” ่ฟ™ๆญฃๆ˜ฏ umbrella ๅญ˜ๅœจ็š„ๆ„ไน‰
use a2ui::core::message_processor::MessageProcessor;
use a2ui::tui::catalogs::basic::{build_basic_catalog, build_basic_registry};
```

## ็คบไพ‹

ๆœฌ crate ่‡ชๅธฆ 17 ไธช็คบไพ‹,ๆ˜ฏไธŠๆ‰‹ A2UI ็š„ๆœ€ไฝณๅ…ฅๅฃ:

```bash
cargo run -p a2ui --example 01_hello_world
cargo run -p a2ui --example 04_login_form
cargo run -p a2ui --example 12_handshake      # ่ƒฝๅŠ›ๅๅ•†ๆกๆ‰‹
```

ๅฎŒๆ•ด็คบไพ‹่กจ่ง[ๆ น็›ฎๅฝ• README](https://github.com/Liangdi/a2ui#readme)ใ€‚

## ่ฎธๅฏ่ฏ

MIT