Shortener Server 文档¶
本目录包含 shortener-server 的相关文档。
文档列表¶
快速链接¶
服务器相关¶
开发相关¶
项目结构¶
shortener-server/
├── src/
│ ├── cache/ # 缓存实现
│ ├── geoip/ # GeoIP 功能(ip2region 等)
│ ├── handlers/ # HTTP 处理器
│ ├── logging/ # 日志配置
│ ├── middleware/ # 中间件(HybridAuth 等)
│ ├── migration/ # 数据库迁移
│ ├── models/ # 数据模型
│ ├── repositories/ # 数据访问层
│ ├── services/ # 业务逻辑层
│ ├── config.rs # 配置管理
│ ├── db.rs # 数据库连接
│ ├── errors.rs # 错误处理
│ ├── jwt.rs # JWT 签发与校验
│ ├── router.rs # 路由配置
│ ├── lib.rs # 库入口
│ └── main.rs # 程序入口
├── tests/ # 测试文件
├── benches/ # 性能测试
├── docs/ # 项目文档
└── Cargo.toml # 项目配置
技术栈¶
- Web 框架: Axum
- 数据库 ORM: SeaORM
- 异步运行时: Tokio
- 序列化: Serde
- 日志: Tracing
- 口令哈希: Argon2(PHC 格式)
- JWT: jsonwebtoken(HS256)
- OIDC: openidconnect
支持的数据库¶
- SQLite
- PostgreSQL
- MySQL
支持的缓存¶
- Redis
- Valkey
- 内存缓存(NullCache)
特性¶
- ✅ RESTful API
- ✅ 自定义短码
- ✅ 访问统计
- ✅ GeoIP 定位
- ✅ 用户代理解析
- ✅ API 密钥认证
- ✅ JWT 令牌认证
- ✅ OIDC 单点登录
- ✅ 健康检查
- ✅ 缓存支持(启动预热、增删同步、一键刷新)
- ✅ 多数据库支持
- ✅ 命令行子命令(init / hash-password)
开发¶
运行测试¶
运行服务器¶
构建¶
相关项目¶
- shortener-cli - 命令行工具