# rust-framework **Repository Path**: moran_4/rust-framework ## Basic Information - **Project Name**: rust-framework - **Description**: rust framework - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-27 - **Last Updated**: 2025-09-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FM Best Framework 一个基于 Rust、Actix-web 和 SeaORM 的现代化应用开发框架。 ## 特性 - 🚀 **高性能**: 基于 Actix-web 的异步 Web 框架 - 🗄️ **数据库支持**: 使用 SeaORM 支持 PostgreSQL、MySQL、SQLite - 🔐 **身份认证**: JWT 令牌认证和授权 - 🛡️ **安全性**: 密码哈希、CORS、速率限制 - 📝 **日志记录**: 结构化日志和请求追踪 - ⚡ **中间件**: 认证、CORS、速率限制、请求ID - 🔧 **配置管理**: 支持环境变量和配置文件 - 📊 **健康检查**: 应用和数据库健康监控 - 🧪 **测试支持**: 完整的单元测试覆盖 ## 项目结构 ``` fm_best/ ├── src/ │ ├── handlers/ # HTTP 请求处理器 │ ├── middleware/ # 中间件 │ ├── models/ # 数据模型和 DTO │ ├── services/ # 业务逻辑服务 │ ├── utils/ # 工具函数 │ ├── config.rs # 配置管理 │ ├── database.rs # 数据库连接 │ ├── error.rs # 错误处理 │ └── main.rs # 应用入口 ├── entity/ # SeaORM 实体定义 ├── migration/ # 数据库迁移 ├── config.toml # 配置文件示例 ├── .env.example # 环境变量示例 └── Cargo.toml # 项目依赖 ``` ## 快速开始 ### 1. 环境准备 确保已安装 Rust (1.70+) 和数据库 (PostgreSQL/MySQL/SQLite)。 ### 2. 克隆项目 ```bash git clone cd fm_best ``` ### 3. 配置环境 复制环境变量示例文件: ```bash cp .env.example .env ``` 编辑 `.env` 文件,配置数据库连接和其他设置。 ### 4. 数据库迁移 ```bash # 运行迁移 cargo run --bin migration # 或者使用 sea-orm-cli sea-orm-cli migrate up ``` ### 5. 启动应用 ```bash cargo run ``` 应用将在 `http://localhost:8080` 启动。 ## API 端点 ### 健康检查 - `GET /health` - 应用健康状态 - `GET /health/ready` - 就绪检查 - `GET /health/live` - 存活检查 ### 认证 - `POST /api/auth/register` - 用户注册 - `POST /api/auth/login` - 用户登录 - `POST /api/auth/refresh` - 刷新令牌 - `POST /api/auth/logout` - 用户登出 - `GET /api/auth/me` - 获取当前用户信息 - `POST /api/auth/change-password` - 修改密码 ### 用户管理 - `GET /api/users/{id}` - 获取用户信息 - `PUT /api/users/{id}` - 更新用户信息 - `DELETE /api/users/{id}` - 删除用户 - `GET /api/users` - 用户列表 (管理员) - `POST /api/users/{id}/activate` - 激活用户 (管理员) - `POST /api/users/{id}/deactivate` - 停用用户 (管理员) ## 配置 ### 环境变量 主要环境变量配置: ```env # 服务器配置 SERVER_HOST=127.0.0.1 SERVER_PORT=8080 # 数据库配置 DATABASE_URL=postgres://username:password@localhost/database_name # JWT 配置 JWT_SECRET=your-super-secret-jwt-key JWT_ACCESS_TOKEN_EXPIRY=3600 # 日志配置 LOG_LEVEL=info RUST_LOG=info ``` ### 配置文件 也可以使用 `config.toml` 文件进行配置,环境变量优先级更高。 ## 开发 ### 运行测试 ```bash cargo test ``` ### 代码格式化 ```bash cargo fmt ``` ### 代码检查 ```bash cargo clippy ``` ### 生成实体 当数据库结构变更时,可以重新生成实体: ```bash sea-orm-cli generate entity -o entity/src ``` ## 部署 ### Docker 部署 ```dockerfile FROM rust:1.70 as builder WORKDIR /app COPY . . RUN cargo build --release FROM debian:bookworm-slim RUN apt-get update && apt-get install -y ca-certificates && rm -rf /var/lib/apt/lists/* COPY --from=builder /app/target/release/fm_best /usr/local/bin/fm_best EXPOSE 8080 CMD ["fm_best"] ``` ### 生产环境 1. 设置环境变量 `RUST_ENV=production` 2. 配置生产数据库 3. 设置强密码和安全的 JWT 密钥 4. 配置 HTTPS 和反向代理 5. 设置日志轮转和监控 ## 安全考虑 - 使用强密码策略 - JWT 密钥定期轮换 - 启用 HTTPS - 配置适当的 CORS 策略 - 实施速率限制 - 定期更新依赖 ## 贡献 1. Fork 项目 2. 创建特性分支 3. 提交更改 4. 推送到分支 5. 创建 Pull Request ## 许可证 MIT License ## 支持 如有问题或建议,请创建 Issue 或联系维护者。