#actix-web #web #web-framework #actix-web-middleware #async-http #http-middleware #async

actix-web-lab

Actix Web 的进行中提取器和中间件

52 个版本

0.22.0 2024 年 8 月 10 日
0.20.2 2024 年 1 月 26 日
0.20.1 2023 年 11 月 18 日
0.19.1 2023 年 2 月 26 日
0.15.0 2022 年 3 月 7 日

#14HTTP 服务器

Download history 14283/week @ 2024-05-03 18008/week @ 2024-05-10 15716/week @ 2024-05-17 14520/week @ 2024-05-24 16713/week @ 2024-05-31 14554/week @ 2024-06-07 16733/week @ 2024-06-14 20274/week @ 2024-06-21 16476/week @ 2024-06-28 17617/week @ 2024-07-05 21054/week @ 2024-07-12 22077/week @ 2024-07-19 23966/week @ 2024-07-26 25028/week @ 2024-08-02 24485/week @ 2024-08-09 22773/week @ 2024-08-16

100,108 每月下载量
用于 18 crates

MIT/Apache

310KB
6.5K SLoC

actix-web-lab

为 Actix Web 可能包含的实验性提取器、中间件和其他额外功能。

crates.io Documentation MIT or Apache 2.0 licensed
dependency status Download codecov

特性

特性投票 →

响应器

  • Csv: 高效的 CSV 流式传输 (文档)
  • NdJson: 高效的 NDJSON 流式传输 (文档)
  • DisplayStream: 高效的逐行 Display 流式传输 (文档)
  • Html: (毕业 🎉) 基本的字符串包装器,以 HTML 内容类型响应 (文档)
  • Cbor: 基本的 CBOR 格式包装器,具有适当的 Content-Type (文档)
  • MessagePack: 基本的 MessagePack 格式包装器,具有适当的 Content-Type (文档)
  • Sse: 具有类似通道界面的语义服务器端发送事件 (SSE) 响应器 (文档)

中间件

  • from_fn: (毕业 🎉) 使用异步函数作为中间件 (文档)
  • map_response: 使用异步函数修改响应 (文档)
  • map_response_body: 使用异步函数修改响应体 (文档)
  • RedirectHttps: 如果连接不安全,则将流量重定向到 HTTPS 的中间件,可选 HSTS (文档)
  • redirect_to_www:用于将流量重定向到www.的函数中间件,如果已经不在那里(文档)
  • redirect_to_non_www:用于将流量重定向到www.的函数中间件,如果已经不在那里(文档)
  • ErrorHandlers:具有更简单界面的替代错误处理中间件(文档)
  • NormalizePath:具有重定向选项的替代路径规范化中间件(文档)
  • CatchPanic:捕获封装的处理程序和中间件中的恐慌,返回空的500响应(文档)
  • PanicReporter:捕获封装的处理程序和中间件中的恐慌,返回空的500响应(文档)
  • LoadShed:当内部服务未准备好时减轻负载(文档)

提取器

  • LazyData:首次使用时初始化的应用程序数据/状态的函数(文档)
  • SwapData:可以在运行时替换的应用程序数据/状态(Data的替代方案)(文档)
  • LocalData:使用内部Rc的应用程序数据/状态,避免原子开销(Data的替代方案)(文档)
  • ThinData:(毕业🎉)用于便宜克隆类型的应用程序数据/状态的函数(文档)
  • Json:具有常量泛型有效负载限制的简化JSON提取器(文档)
  • Path:支持解构的简化路径参数提取器(文档)
  • Query:可以收集多值项的简化查询字符串提取器(文档)
  • RequestSignature:包装提取器并计算与请求签名一起(文档)
  • BodyLimit:包装正文提取器并通过限制有效负载大小防止DoS攻击(文档)
  • Bytes:具有常量泛型限制的简化Bytes提取器(文档)
  • UrlEncodedForm:具有常量泛型有效负载大小限制的URL编码表单提取器(文档)
  • Host:从URL或Host标头中获取的主机信息(文档)

  • FromRequest:从其他提取器派生宏以实现 FromRequest 的聚合结构(文档)

头部信息

  • StrictTransportSecurity:严格传输安全(HSTS)配置(文档)
  • CacheControl:支持现代指令的 Cache-Control 类型头部(文档)
  • ContentLength:Content-Length 类型头部(文档)
  • Forwarded:代理和原始客户端信息(文档)

身体类型

  • channel:一种简单的类似于通道的身体类型,拥有一个可以从另一个线程使用的发送方(文档)
  • writer:一种简单的 AsyncWrite 身体类型(文档)

服务

  • Redirect:(毕业🎉)简单的重定向(文档)
  • spa:易于使用的单页应用程序(SPA)服务(文档)

路由守卫

  • Acceptable:(毕业🎉)验证是否存在 Accept 头部并且它包含兼容的 MIME 类型(文档)

测试工具

  • test_request:使用类似 HTTP 的 DSL 构建 TestRequest(文档)
  • assert_response_matches:快速编写测试以检查 ServiceResponse 的各个部分(文档)

其他工具

  • fork_request_payload:有效地克隆请求负载(文档)

关于此软件包的注意事项

  • 它永远不会达到 v1.0。
  • 最低支持的 Rust 版本(MSRV)是每个发布时的最新稳定版本。
  • 在大多数 0.x 版本升级时可能会发生重大更改。
  • 某些项目的文档可能有限。
  • 毕业到 Actix Web 软件包的项目将在此处标记为已弃用一段合理的时间,以便您进行迁移。
  • 迁移通常只需从导入中删除 _lab 后缀即可。

依赖项

~19–31MB
~548K SLoC