创建项目与依赖
最小 Cargo.toml
rust-agent-flow-gpui 依赖 GPUI(来自 Zed 仓库),需要在 workspace 根 `Cargo.toml` 统一声明 git 依赖:
[workspace]
members = ["crates/my-app"]
resolver = "2"
[workspace.dependencies]
gpui = { git = "https://github.com/zed-industries/zed", rev = "1d217ee39d381ac101b7cf49d3d22451ac1093fe" }
gpui_platform = { git = "https://github.com/zed-industries/zed", rev = "1d217ee39d381ac101b7cf49d3d22451ac1093fe" }
gpui-component = { git = "https://github.com/longbridge/gpui-component", rev = "e416af7f" }
rust-agent-flow = { path = "../rust-agent-flow/crates/core", version = "0.1.0" }
rust-agent-flow-gpui = { path = "../rust-agent-flow/crates/gpui", version = "0.1.0" }
> **注意**:GPUI 锁定特定 Zed commit(`rev`),不同版本 API 可能不兼容。请使用与框架相同的 rev。
应用 crate 的 Cargo.toml
[package]
name = "my-app"
version = "0.1.0"
edition = "2021"
[dependencies]
gpui = { workspace = true }
gpui_platform = { workspace = true }
gpui-component = { workspace = true }
rust-agent-flow = { workspace = true }
rust-agent-flow-gpui = { workspace = true }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
[[bin]]
name = "my-app"
path = "src/main.rs"
推荐目录结构
my-app/
├── Cargo.toml
└── src/
├── main.rs # 入口
├── flow_data.rs # 流程图数据加载
└── toolbar.rs # 工具栏扩展(可选)
依赖说明
| 依赖 | 是否必需 | 说明 | |------|----------|------| | `rust-agent-flow-gpui` | 必需 | 主框架(自动依赖 core) | | `gpui` | 必需 | GPUI 框架 | | `gpui_platform` | 必需 | GPUI 平台层 | | `gpui-component` | 必需 | 组件库(Button/Input 等) | | `serde` / `serde_json` | 推荐 | FlowDocument 序列化 | | `rust-agent-flow`(core) | 可选 | 直接使用图模型/算法时 |
编译注意事项
首次编译可能需要数分钟(GPUI 从 git 编译)。后续增量编译会快很多。
如遇 GPUI 相关链接错误,确保系统已安装 GPU 驱动与所需系统库(Windows 需 DirectX,macOS 需 Metal)。
小结
依赖配置完成后,下一步创建第一个窗口并显示 `FlowEditorView`。
下一节:[Hello World 详解](hello-world.md)