#web-framework #websocket #async #web

actix-web

Actix Web 是一个强大、实用且极快的 Rust Web 框架

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 服务器

Download history 202365/week @ 2024-05-04 228086/week @ 2024-05-11 237718/week @ 2024-05-18 226584/week @ 2024-05-25 254544/week @ 2024-06-01 257430/week @ 2024-06-08 235914/week @ 2024-06-15 239686/week @ 2024-06-22 223638/week @ 2024-06-29 237208/week @ 2024-07-06 245244/week @ 2024-07-13 259080/week @ 2024-07-20 252632/week @ 2024-07-27 247508/week @ 2024-08-03 286096/week @ 2024-08-10 242302/week @ 2024-08-17

1,074,374 每月下载量
1,122 个 Crates 中使用 (直接使用 1,013)

MIT/Apache

1.5MB
35K SLoC

Actix Web

Actix Web 是一个强大、实用且极快的 Rust Web 框架

crates.io Documentation MSRV MIT or Apache 2.0 licensed Dependency Status
CI codecov downloads Chat on Discord

特性

  • 支持 HTTP/1.xHTTP/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
}

更多示例

您可以查看 此目录 以获取更多示例。

基准测试

根据 TechEmpower 框架基准测试,这是最快的 Web 框架之一。

许可

本项目可选择以下任一许可协议

行为准则

actix/actix-web存储库的贡献是根据贡献者誓言组织的。Actix团队承诺将介入以维护该行为准则。

依赖项

~13–28MB
~544K SLoC