技术栈
驱动 IfAI 的技术概述。
前端技术栈
核心框架
| 技术 | 版本 | 用途 |
|---|---|---|
| React | 19.1.0 | UI 框架 |
| TypeScript | 5.8.3 | 类型安全 |
| Vite | 7.0.4 | 构建工具 |
主要库
| 库 | 版本 | 用途 |
|---|---|---|
| Monaco Editor | 0.55.0 | 代码编辑器组件 |
| Zustand | 5.0.9 | 状态管理 |
| TailwindCSS | 3.4.17 | 样式 |
| Framer Motion | 12.23.26 | 动画 |
| i18next | 23.x | 国际化 |
| React Virtuoso | 4.x | 虚拟滚动 |
| @tanstack/react-virtual | 3.x | 列表虚拟化 |
开发工具
| 工具 | 版本 | 用途 |
|---|---|---|
| Vitest | 4.0.16 | 单元测试 |
| Playwright | 1.57.0 | E2E 测试 |
| ESLint | 9.x | 代码检查 |
| Prettier | 3.x | 代码格式化 |
后端技术栈
核心框架
| 技术 | 版本 | 用途 |
|---|---|---|
| Tauri | 2.0 | 桌面框架 |
| Rust | 1.80+ | 后端语言 |
| Tokio | 1.48.x | 异步运行时 |
主要 Crate
| Crate | 用途 |
|---|---|
| serde | 序列化 |
| serde_json | JSON 处理 |
| tree-sitter | 代码解析 |
| portable-pty | 终端管理 |
| reqwest | HTTP 客户端 |
| llama-cpp-2 | 本地 LLM 推理(可选) |
| fastembed | 向量嵌入(可选) |
AI/ML 技术栈
云端提供商
| 提供商 | 模型 | 用途 |
|---|---|---|
| OpenAI | GPT-4、GPT-3.5 | 通用 AI |
| Anthropic | Claude 3.5 Sonnet | 高级推理 |
| DeepSeek | DeepSeek-V3 | 成本效益 |
| 智谱 | GLM-4.7 | 中文支持 |
| Kimi | Moonshot-v1 | 长上下文 |
本地模型
| 模型 | 大小 | 用途 |
|---|---|---|
| Qwen2.5-Coder | 0.5B - 7B | 代码生成 |
| Llama 3.2 | 1B - 3B | 通用 |
| CodeLlama | 各种 | 代码专用 |
集成
- Ollama:本地模型运行时
- GGUF 格式:模型量化
- llama.cpp:推理引擎
桌面集成
Tauri 2.0 功能
| 功能 | 描述 |
|---|---|
| 窗口管理 | 多窗口支持 |
| 系统托盘 | 后台运行 |
| 原生菜单 | 平台菜单 |
| 文件系统 | 作用域文件访问 |
| Shell 访问 | 命令执行 |
平台支持
| 平台 | 状态 | 备注 |
|---|---|---|
| macOS | ✅ 完全支持 | Apple Silicon 优化 |
| Windows | ✅ 完全支持 | 仅 x64 |
| Linux | ✅ 完全支持 | AppImage 格式 |
开发环境
要求
| 工具 | 版本 |
|---|---|
| Node.js | 18.0+ |
| Rust | 1.70+ |
| Git | 最新 |
| npm/pnpm | 最新 |
构建系统
bash
# 开发
npm run tauri:dev
# 生产构建
npm run tauri:build
# 社区版 vs 商业版
npm run build:community # 开源版本
npm run build:commercial # 完整功能版本架构决策
为什么选择 Tauri?
- 轻量级:比 Electron 更小的打包
- 安全:最小权限原则
- Rust 性能:重任务的本地速度
- 现代:活跃的开发和生态系统
为什么选择 React 19?
- 最新功能:并发渲染、actions
- 性能:改进的渲染优化
- 生态系统:最大的 UI 库生态系统
为什么选择 Monaco Editor?
- VS Code 的编辑器:经过实战检验
- 语言支持:35+ 种语言
- 功能:IntelliSense、重构、导航
- 可定制:可扩展的架构
为什么选择 Zustand?
- 简单:最少的样板代码
- 快速:没有订阅就不重新渲染
- TypeScript:一流支持
- 小巧:压缩后约 1KB
性能优化
前端
- 虚拟滚动:以 120 FPS 处理 10,000+ 项目
- 代码分割:延迟加载路由
- 记忆化:React.memo 用于昂贵的组件
- Web Workers:卸载符号索引
后端
- 异步 I/O:非阻塞文件操作
- 缓存:文件内容的 LRU 缓存
- 增量索引:仅扫描更改的文件
- 并行处理:尽可能多线程
安全架构
前端
- 内容安全策略:限制资源加载
- 可信类型:防止 XSS 攻击
- 输入清理:清理用户输入
后端
- Tauri 安全模型:作用域系统访问
- Shell 批准:显式命令执行
- API 密钥存储:系统密钥链(非纯文本)
本地 LLM
- 无网络:所有处理在设备上
- 沙盒:与系统隔离
- 用户数据:从不传输
测试策略
单元测试
- 前端:Vitest + React Testing Library
- 后端:Rust 内置测试框架
集成测试
- IPC 通信:Tauri 测试工具
- AI 集成:模拟提供商
E2E 测试
- Playwright:36 个测试场景
- 覆盖范围:所有主要功能
监控和调试
前端
- React DevTools:组件检查
- Zustand DevTools:状态调试
- 性能分析器:渲染优化
后端
- tracing crate:结构化日志
- sentry-panic:崩溃报告
- 自定义指标:性能跟踪
未来路线图
计划技术
| 领域 | 技术 | 状态 |
|---|---|---|
| WebAssembly | 组件编译 | 研究 |
| 本地模型 | 更多 GGUF 支持 | 进行中 |
| 离线模式 | Service Workers | 计划中 |
| 同步 | 跨设备设置 | 计划中 |