# 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/)