b579a835de8721b5cbe95e97161187528dc97f99
- 将 CLAUDE.md 移至 .claude/ 目录,精简为 AI 开发指南 - 扩充 README.md 为完整的用户文档 - 新增 rules/mock-spec.md: YAML 配置生成规范 - 新增 rules/commit-spec.md: Git 提交消息格式规范 - 从 .gitignore 移除 .claude/ 目录以便跟踪 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
mock-server
基于 Rust/Axum 的配置驱动型 Mock 服务,支持 YAML 配置、请求匹配、热重载、延迟响应、大文件流式返回等特性。
特性
- 配置驱动:YAML 定义 API 行为,无需修改代码
- 热重载:
mocks/*.yaml变更自动生效,无需重启服务 - 高性能:基于 Rust 异步运行时,路径首段哈希索引 O(1) 匹配
- 低内存:大响应体支持
file://协议从磁盘流式读取 - 文件上传:内置
/api/upload端点,按日期分目录存储
快速开始
1. 安装依赖
确保已安装 Rust 工具链:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
2. 构建与运行
cargo build # 构建项目
cargo run # 启动服务 http://127.0.0.1:8080
cargo test # 运行所有测试
cargo test <pattern> # 运行匹配的测试(如 cargo test router)
cargo clippy # 代码检查
cargo fmt # 格式化代码
文件结构
src/
├── main.rs # 入口,热重载监听,Axum 路由配置
├── config.rs # 数据结构定义(MockRule, RequestMatcher 等)
├── loader.rs # YAML 解析,目录扫描
├── router.rs # 路径首段索引,匹配逻辑
├── handler.rs # 统一请求处理器,文件流式响应
└── upload.rs # Multipart 文件上传处理
tests/ # 集成测试(每个模块一个测试文件)
mocks/ # YAML Mock 配置文件
storage/ # 上传文件存储(按 YYYY-MM-DD 分目录)
Mock 配置
详细配置规范请参考 .claude/rules/mock-spec.md
API
文件上传
POST /api/upload
Content-Type: multipart/form-data
file: <binary>
响应示例:
{
"filename": "example.txt",
"path": "storage/2024-01-15/example.txt",
"size": 1024
}
许可证
MIT
Languages
Rust
100%