大家好,我是渔夫。
今天主题,值得关注 Rust 的web框架有那些。
近年来,Rust 语言在编程界里崭露头角,为多个领域提供了出色的解决方案,不管你是身为客户端程序员,还是后端,甚至底层开发,内核开发等人员都是对 Rust 产生浓厚兴趣。
到目前为此,Rust 生态中涌现出多个流行的Web框架,其中三个备受瞩目:
1.Axum
Axum框架 ,是由 Rust 社区的异步事实标准 Tokio 团队开发,以高性能和强大的异步支持著称。随着来自知名团队的背书,Axum 框架的发展迅速,备受开发者青睐。
高级特性:
- 使用无宏 API 将请求路由到处理程序
- 使用提取器以声明方式解析请求
- 简单且可预测的错误处理模型
- 使用最少的样板生成响应
- 充分利用中间件、服务和实用程序的生态系统 tower,tower-http
Github 地址:https://github.com/tokio-rs/axum
2.Actix Web
Actix Web 是 Rust 中一款历史悠久且备受欢迎的Web框架之一,作为一项优秀的开源项目,经过多次迭代,并已经达到了主要版本了。这样 Actix Web 可以确保不会引入破坏性的更改。
Actix Web 实现了自己的 Service 特性,与 Tower 的Service 基本相同但不兼容,也就是说在Tower 生态系统中大多数可用的中间件在 Actix中无法使用。在Actix Web中执行一些特殊任务时,可能需要涉及到框架中的Actor模型,这可能带来一些意外的问题。
多提一嘴,Actix Web 社区非常强大,框架支持 HTTP/2和WebSocket,提供了用于Web框架中最常见任务的 crate s和指南,并且提供强大文档,而且速度非常快。Actix Web备受欢迎,是因为它提供了稳定版本,并在解决挑战时提供了最佳选择。
官网地址:https://actix.rs/docs/
3.Warp
Warp 是一个强大的 Rust Web 框架,提供了许多开箱即用的功能,包括路径路由和参数提取、标头要求和提取、查询字符串反序列化、JSON和表单正文处理、多部分表单数据、静态文件和目录服务、网络套接字管理、访问日志记录、Gzip、Deflate和Brotli压缩,以及服务器发送事件(SSE)等。
由于 Warp建立在 hyper 和 Tokio 这两个异步Rust运行时之上,因此它自动提供了HTTP/1和HTTP/2支持、异步功能以及被认为是最快之一的HTTP实现。Warp经过充分的测试,确保其正确性和稳定性,使其成为构建高性能、可靠的Web应用程序的理想选择。
开源依赖库:
- Tokio
- NuShell
- Fig Completion Specs
- Warp Server Framework
- Alacritty
- Hyper HTTP library
- FontKit
- Core-foundation
- Smol
Github 地址:https://github.com/warpdotdev/Warp