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
1.4 KiB
1.4 KiB
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
- Actix-web — 成熟的 actor 模型框架,性能优异
- Axum — Tokio 生态新兴框架,Tower 集成
- 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