# 03 - OrangeRadio 开发文档

> 面向开发者 · 环境搭建与构建指南（精简版）

## 一、环境要求

- **Rust**：1.80+（推荐 stable）
- **Node.js**：18+（含 npm 或 pnpm）
- **Tauri 2 CLI**：构建桌面端所需
- **Windows 额外**：MinGW-w64 / MSVC 工具链，确保 Rust 链接器可用

## 二、快速启动

项目根目录提供了一键启动脚本，执行后自动完成前端构建、Rust 编译与启动应用：

```bash
# Windows
./run.ps1

# macOS / Linux
./run.sh
```

## 三、手动分步构建

```bash
# 安装前端依赖
cd frontend
npm install
npm run build

# 构建桌面端
cd ..
cargo build -p orangeradio-desktop

# 启动开发模式
cd apps/desktop/src-tauri
cargo tauri dev
```

## 四、代码结构

```
OrangeRadio/
├── apps/desktop/src-tauri/   # Tauri 应用入口
├── crates/                   # Rust workspace（核心逻辑）
│   └── orange-*/src/
├── frontend/src/             # React 前端
├── server/                   # Axum 后端
├── extension/                # 浏览器扩展
├── docs/                     # 文档
└── run.ps1 / run.sh          # 一键启动脚本
```

## 五、提交规范

```
<type>(<scope>): <subject>

feat(player): 新增桌面歌词
fix(audio): 修复 CORS 静音
docs: 更新开发文档
```

类型：`feat` / `fix` / `docs` / `refactor` / `test` / `chore`

## 六、安全须知

- **绝不入库任何密钥**：API Key / Cookie / Spotify Client Secret 等走本地配置或加密存储，不要写入日志或提交到 git。
- 第三方音源接口的加密实现细节属于实现细节，不暴露在 IPC 返回值或公开文档中。
