1000f8a80d
- Add gRPC service modules: auth, channel, channel settings, member, permission - Update protobuf definitions and generated code - Remove immediate/ real-time module (superseded by IM service) - Update etcd discovery and registration - Update cache, error, config, and build infrastructure - Add ADR documentation - Update OpenAPI spec
49 lines
1.4 KiB
Markdown
49 lines
1.4 KiB
Markdown
# ADR-001: 选择 Actix-web 作为 Web 框架 / Choice of Actix-web as Web Framework
|
|
|
|
## 状态 / Status
|
|
|
|
**Accepted**
|
|
|
|
**日期 / Date**: 2024-01-01
|
|
|
|
## 背景 / Context
|
|
|
|
appks 是一个协作开发平台后端,需要一个高性能、可靠的 Rust Web 框架来处理 HTTP 请求、WebSocket 连接和中间件。
|
|
|
|
appks is a collaborative development platform backend that needs a high-performance, reliable Rust web framework for HTTP requests, WebSocket connections, and middleware.
|
|
|
|
## 决策 / Decision
|
|
|
|
选择 **Actix-web** 作为 Web 框架。
|
|
|
|
Chose **Actix-web** as the web framework.
|
|
|
|
## 考虑的方案 / Considered Options
|
|
|
|
1. **Actix-web** — 成熟的 actor 模型框架,性能优异
|
|
2. **Axum** — Tokio 生态新兴框架,Tower 集成
|
|
3. **Rocket** — 易用性优先的框架
|
|
|
|
## 后果 / Consequences
|
|
|
|
### 正面 / Positive
|
|
|
|
- 优异的性能表现 / Excellent performance
|
|
- 成熟的生态系统 / Mature ecosystem
|
|
- 良好的 WebSocket 支持 / Good WebSocket support
|
|
- 活跃的社区维护 / Active community maintenance
|
|
|
|
### 负面 / Negative
|
|
|
|
- 学习曲线较陡 / Steeper learning curve
|
|
- Actor 模型需要适应 / Actor model requires adaptation
|
|
|
|
### 风险 / Risks
|
|
|
|
- 框架版本升级可能带来 breaking changes / Framework upgrades may bring breaking changes
|
|
|
|
## 参考 / References
|
|
|
|
- [Actix-web 官方文档](https://actix.rs/)
|
|
- [TechEmpower Web Framework Benchmarks](https://www.techempower.com/benchmarks/)
|