Files
appks/docs/adr/001-choice-of-web-framework.md
zhenyi 1000f8a80d chore(infra): add gRPC layer, update protobufs, remove immediate module
- 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
2026-06-10 18:49:42 +08:00

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

  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