Rust 后端
RushChat 的后端使用 Rust 编写,基于 Axum 框架。
Rust 后端概览
技术栈
- Rust - 系统编程语言
- Axum - 现代化的异步 Web 框架
- Tokio - 异步运行时
- SQLx - 类型安全的异步 SQL 工具包(MySQL)
- Serde - 序列化/反序列化
- Bcrypt - 密码加密
项目结构
server-rust/
├── src/
│ ├── main.rs # 入口文件
│ ├── config.rs # 配置管理
│ ├── db.rs # 数据库连接
│ ├── models/ # 数据模型
│ │ ├── user.rs
│ │ ├── message.rs
│ │ ├── channel.rs
│ │ └── ...
│ ├── handlers/ # HTTP 处理器
│ │ ├── auth.rs
│ │ ├── user.rs
│ │ ├── channel.rs
│ │ └── ...
│ ├── websocket/ # WebSocket 处理器
│ │ ├── connection.rs
│ │ ├── events.rs
│ │ └── state.rs
│ └── utils/ # 工具函数
│ ├── rpc.rs # RPC 工具(NFT 验证等)
│ └── permissions.rs
├── Cargo.toml
└── README.md
核心功能
WebSocket 实时通信
- 基于 Tokio WebSocket
- 支持广播消息
- 连接管理和心跳检测
RESTful API
- 用户认证
- 用户管理
- 频道管理
- 消息管理
- 文件上传
数据库集成
- 使用 SQLx 进行类型安全的查询
- 连接池管理
- 异步数据库操作
文件上传
- 头像上传
- 表情包上传
- 图片压缩
开发
运行开发服务器
编译生产版本
运行测试
性能优化
- 使用连接池管理数据库连接
- 异步 I/O 处理
- 广播通道用于 WebSocket 消息分发
- 类型安全的数据库查询