# milo-aide **Repository Path**: astraea-stellar/milo-aide ## Basic Information - **Project Name**: milo-aide - **Description**: No description available - **Primary Language**: Rust - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-14 - **Last Updated**: 2026-03-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Desktop GUI Assistant 一个基于 **Tauri v2 + React + TypeScript** 的现代化轻量级 HTTP 请求调试工具,采用 **shadcn/ui** 设计语言,提供极致的开发体验和用户界面。 ![License](https://img.shields.io/badge/license-MIT-blue.svg) ![Tauri](https://img.shields.io/badge/Tauri-v2-24C8DB.svg) ![React](https://img.shields.io/badge/React-v19-61DAFB.svg) ![TypeScript](https://img.shields.io/badge/TypeScript-v5-3178C6.svg) ## ✨ 特性亮点 - 🎨 **现代化 UI** - 基于 shadcn/ui + TailwindCSS v4,极简设计语言 - 🌗 **主题切换** - 深色/浅色主题无缝切换 - 📝 **智能编辑器** - Monaco Editor(VS Code 同款),支持语法高亮 - 🚀 **高性能** - Rust 后端,异步 HTTP 请求,30 秒超时保护 - 🔌 **全方法支持** - GET/POST/PUT/DELETE/PATCH/HEAD/OPTIONS - 📊 **实时反馈** - 状态码、响应时间、响应大小一目了然 - 🎯 **JSON 格式化** - 一键美化/压缩 JSON 数据 - 💻 **跨平台** - Windows、macOS、Linux 原生支持 ## 🖼️ 界面预览 ### 深色模式 - 请求编辑区:URL 输入 + HTTP 方法选择 + 请求头/请求体编辑 - 响应显示区:状态码 + 响应头 + 响应体展示 - Monaco Editor 语法高亮 ### 浅色模式 - 清爽明亮的视觉效果 - 所有功能完全一致 ## 🛠️ 技术栈 ### 前端 - **框架**: React 19 + TypeScript - **UI 组件**: shadcn/ui (基于 Radix UI) - **样式**: TailwindCSS v4 - **代码编辑器**: Monaco Editor - **图标**: Lucide React - **构建工具**: Vite 7 ### 后端 - **语言**: Rust - **HTTP 客户端**: reqwest + tokio - **序列化**: serde + serde_json - **错误处理**: anyhow + thiserror - **GUI 框架**: Tauri v2 ## 📦 安装指南 ### 前置要求 #### 必需 - **Node.js** >= 18 ([下载](https://nodejs.org/)) - **Rust** >= 1.70 ([下载](https://rustup.rs/)) #### Windows 平台编译要求(三选一) **方案 A: Visual Studio Build Tools(推荐)** ```powershell # 1. 下载 Build Tools for Visual Studio # https://visualstudio.microsoft.com/downloads/ # 2. 安装时选择 "C++ 生成工具" 工作负载 # - MSVC v143 - VS 2022 C++ x64/x86 生成工具 # - Windows 10/11 SDK ``` **方案 B: Visual Studio Community** ```powershell # 安装 Visual Studio Community 2022 # 选择 "使用 C++ 的桌面开发" 工作负载 ``` **方案 C: MinGW-w64** ```powershell # 1. 安装 MSYS2 winget install MSYS2.MSYS2 # 2. 安装 GCC pacman -S mingw-w64-x86_64-gcc # 3. 添加 PATH: C:\msys64\mingw64\bin # 4. 切换 Rust 工具链 rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu ``` ### 快速开始 ```powershell # 1. 克隆项目 cd Milo # 2. 安装依赖 npm install # 3. 开发模式(前端热重载 + Rust 后端) npm run tauri dev # 4. 生产构建 npm run tauri build ``` ### 仅测试前端 UI(无需 Rust 编译器) ```powershell # 1. 安装依赖 npm install # 2. 启动 Vite 开发服务器(模拟模式) npm run dev # 访问 http://localhost:1420/ ``` ## 📖 使用说明 ### 1. 发送 HTTP 请求 1. **选择 HTTP 方法**: 从下拉框选择 GET/POST/PUT/DELETE 等 2. **输入 URL**: 在地址栏输入完整的请求 URL 3. **添加请求头**: 每行一个,格式 `Key: Value` ``` Content-Type: application/json Authorization: Bearer your_token ``` 4. **编写请求体**: 在编辑器中输入 JSON 或其他格式的请求体 5. **点击发送**: 点击 "Send" 按钮或按 `Ctrl+Enter` ### 2. 查看响应 - **状态码**: 绿色 (2xx)、橙色 (3xx/4xx)、红色 (5xx) - **响应时间**: 毫秒级精度 - **响应大小**: 自动计算 KB - **响应头**: 可滚动查看完整头部信息 - **响应体**: Monaco Editor 展示,支持语法高亮 ### 3. JSON 格式化 - **请求体格式化**: 点击 "Format JSON" 按钮 - **响应体格式化**: 点击 "Format JSON" 按钮 - 自动检测无效 JSON,不会报错 ### 4. 主题切换 点击右上角的太阳/月亮图标切换深色/浅色主题 ## 📁 项目结构 ``` Milo/ ├── src/ # 前端源代码 │ ├── components/ │ │ └── ui/ # shadcn/ui 组件 │ │ ├── button.tsx │ │ ├── card.tsx │ │ ├── input.tsx │ │ └── select.tsx │ ├── lib/ │ │ └── utils.ts # 工具函数 │ ├── types/ │ │ └── api.ts # TypeScript 类型定义 │ ├── App.tsx # 主应用组件 │ ├── main.tsx # 入口文件 │ └── index.css # TailwindCSS + 主题变量 ├── src-tauri/ # Rust 后端源代码 │ ├── src/ │ │ ├── lib.rs # Tauri 命令和 HTTP 逻辑 │ │ └── main.rs # 主入口 │ ├── capabilities/ │ │ └── default.json # Tauri 权限配置 │ ├── icons/ # 应用图标 │ ├── Cargo.toml # Rust 依赖 │ └── tauri.conf.json # Tauri 配置 ├── package.json # Node.js 依赖 ├── tsconfig.json # TypeScript 配置 ├── vite.config.ts # Vite 配置 ├── postcss.config.js # PostCSS 配置 └── INSTALL.md # 详细安装指南 ``` ## 🎯 API 参考 ### Tauri Command: `send_request` ```rust #[tauri::command] async fn send_request( method: String, // HTTP 方法 url: String, // 请求 URL headers: HashMap, // 请求头 body: Option, // 请求体(可选) ) -> Result ``` **响应结构**: ```typescript interface HttpResponse { status: number; // HTTP 状态码 statusText: string; // 状态文本 headers: Record; // 响应头 body: string; // 响应体 duration: number; // 请求耗时(毫秒) size: number; // 响应大小(字节) } ``` ## ⚙️ 配置选项 ### 超时设置 在 `src-tauri/src/lib.rs` 中修改: ```rust let client = reqwest::Client::builder() .timeout(std::time::Duration::from_secs(30)) // 修改超时时间 .build()?; ``` ### 主题颜色 在 `src/index.css` 中修改 CSS 变量: ```css @theme { --color-primary: hsl(221.2 83.2% 53.3%); --color-background: hsl(0 0% 100%); /* ... 更多颜色 */ } ``` ## 🐛 常见问题 ### Q: 遇到 "linker `link.exe` not found" 错误 **A**: 需要安装 Visual Studio Build Tools 或 Visual Studio,并确保安装了 C++ 生成工具。 ### Q: 如何禁用 HTTPS 证书验证? **A**: 在 `lib.rs` 中修改 Client 配置: ```rust let client = reqwest::Client::builder() .danger_accept_invalid_certs(true) .build()?; ``` ### Q: 如何支持更大的响应体? **A**: Monaco Editor 已启用虚拟滚动,理论上支持无限大文件。如需优化性能,可限制最大显示行数。 ### Q: 前端预览模式如何使用? **A**: 运行 `npm run dev` 即可启动纯前端预览,使用模拟数据测试 UI。 ## 🚀 下一步计划 - [ ] 请求历史记录(本地存储) - [ ] Collection 管理 - [ ] 环境变量支持 - [ ] 导入/导出(Postman 兼容) - [ ] 自动化测试脚本 - [ ] 快捷键优化(Ctrl+Enter 发送) - [ ] WebSocket 支持 - [ ] GraphQL 调试模式 ## 📄 许可证 MIT License ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! ## 📧 联系方式 如有问题或建议,请提交 Issue。 --- **Built with ❤️ using Tauri v2 + React + Rust**