调查:哪些 Rust 框架用于生产环境
Rust 生态系统持续快速发展,网络框架是社区中最热门的话题之一。最近一项针对在商业开发中使用 Rust 的开发者的调查,揭示了真实情况:哪些工具真正能承受生产环境的负载,哪些仍处于阴影之中。
超过 500 名来自不同规模公司(从初创企业到大型企业)的工程师参与了此次调查。我们分析了数据,并选出了前三名。
1. Actix-web——常青的领导者
Actix-web 多年来一直保持领先地位。尽管经历了一段动荡的历史(包括创始人离开和项目复兴的争议),该框架仍然是高负载系统中最受欢迎的选择。 42% 的受访者 将 Actix-web 列为其生产环境中的主要框架。
- 优点:卓越的性能、成熟的生态系统、大量现成的中间件。
- 缺点:复杂的 trait 系统代码,对新手来说文档有时不够清晰。
2. Axum——快速崛起的竞争者
来自 Tokio 团队的 Axum 正以惊人的速度增长。 35% 的受访者 在生产环境中使用它,并且这个数字每个季度都在增长。Axum 的王牌是与 Tokio 和 Tower 生态系统的完美集成。
- 优点:模块化、编写中间件简单、出色的异步支持。
- 缺点:相对较新的框架,一些库尚未适配。
3. Rocket——入门便捷之选
Rocket 占据了 15% 的市场份额。其主要优势是开发体验类似于 Python 框架(Flask、FastAPI)。Rocket 使用宏进行路由和验证,使代码非常易读。
- 优点:低入门门槛、内置表单验证、稳定的 API。
- 缺点:性能不如 Actix 和 Axum,需要 nightly 版本的 Rust(不过这一点正在改善)。
其他参与者
剩下的 8% 分布在 Warp(在微服务中流行,但正在失去优势)、Tide 和 Salvo 之间。有趣的是, 没有一位 受访者使用像 Nickel 或 Iron 这样的框架——它们已经完全过时了。
趋势与结论
调查显示了一个明确的趋势:Rust 社区选择 异步 和 与 Tokio 的兼容性。Actix-web 依靠惯性和遗留项目维持地位,但 Axum 正在逐渐夺走其用户。Rocket 仍然是快速原型设计的利基解决方案。
如果您刚刚开始学习用于 Web 开发的 Rust——请关注 Axum:它现代、活跃发展,且无需牺牲性能。如果您需要一款久经考验的可靠工具——Actix-web 不会让您失望。
来源:RustConf 2024 上的调查以及来自 GitHub 公开仓库的数据。