145 个版本 (34 个稳定版)
4.9.0 | 2024 年 8 月 10 日 |
---|---|
4.8.0 | 2024 年 6 月 20 日 |
4.6.0 | 2024 年 5 月 19 日 |
4.5.1 | 2024 年 2 月 4 日 |
0.2.1 | 2017 年 11 月 3 日 |
#3 in HTTP 服务器
1,074,374 每月下载量
在 1,122 个 Crates 中使用 (直接使用 1,013)
1.5MB
35K SLoC
特性
- 支持 HTTP/1.x 和 HTTP/2
- 流式传输和管道
- 强大的请求路由,可选宏
- 完全兼容 Tokio
- 保持连接和慢请求处理
- 客户端/服务器 WebSockets 支持
- 透明的内容压缩/解压缩 (br, gzip, deflate, zstd)
- 多部分流
- 静态资源
- 使用 OpenSSL 或 Rustls 支持 SSL
- 中间件 (日志记录器、会话、CORS 等)
- 与
awc
HTTP 客户端 集成 - 在稳定的 Rust 1.72+ 上运行
文档
示例
依赖项
[dependencies]
actix-web = "4"
代码
use actix_web::{get, web, App, HttpServer, Responder};
#[get("/hello/{name}")]
async fn greet(name: web::Path<String>) -> impl Responder {
format!("Hello {name}!")
}
#[actix_web::main] // or #[tokio::main]
async fn main() -> std::io::Result<()> {
HttpServer::new(|| {
App::new().service(greet)
})
.bind(("127.0.0.1", 8080))?
.run()
.await
}
更多示例
- Hello World
- 基本设置
- 应用程序状态
- JSON 处理
- 多部分流
- MongoDB 集成
- Diesel 集成
- SQLite 集成
- Postgres 集成
- Tera 模板
- Askama 模板
- 使用 Rustls 的 HTTPS
- 使用 OpenSSL 的 HTTPS
- 简单 WebSocket
- WebSocket 聊天
您可以查看 此目录 以获取更多示例。
基准测试
根据 TechEmpower 框架基准测试,这是最快的 Web 框架之一。
许可
本项目可选择以下任一许可协议
- Apache许可证,版本2.0(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
行为准则
对actix/actix-web
存储库的贡献是根据贡献者誓言组织的。Actix团队承诺将介入以维护该行为准则。
依赖项
~13–28MB
~544K SLoC