4 个稳定版本
1.2.0 | 2024 年 2 月 6 日 |
---|---|
1.1.1 | 2023 年 12 月 3 日 |
1.1.0 | 2022 年 8 月 7 日 |
1.0.0 | 2022 年 6 月 5 日 |
#1269 在 Web 编程 中
每月下载量:47
52KB
663 行
异步 FastCGI 处理器库
此 crate 实现了 Tokio 的 FastCGI 处理器。它是对 FastCGI 协议在安全 Rust 中的完整重新实现,支持所有三个 FastCGI 角色:响应者、授权者和过滤器。枚举 Role
记录了不同的角色及其输入和输出参数。
如果您只想使用此库,请查看示例,打开文档,通过将以下内容添加到 [dependencies]
部分 Cargo.toml
开始使用。
tokio-fastcgi = "1"
工作原理
tokio-fastcgi 库处理由服务器发送的 FastCGI 请求。通过 Tokio 接受连接并创建新的任务来处理请求。在处理器任务中,通过调用 Requests::from_split_socket
创建异步请求流。通过在流上调用 Requests::next().await
将返回一个新 Request
实例,一旦它完全从 web 服务器接收。
返回的Request
实例具有一个process
方法,该方法接受一个异步回调函数或闭包,用于处理请求。当前的请求将作为参数传递给回调,并可用于检索由web服务器发送的输入流和写入输出流。如果处理请求失败,回调返回一个结果或错误。
当Requests
实例返回更多请求时,此过程会重复。如果没有更多请求返回,流将被丢弃,与web服务器的连接将被关闭。
此库处理连接重用和用户请求的取消。有关更多详细信息,请参阅Requests::next
。
示例
该库包含两个示例:一个简化的示例和一个小型的REST API。只需看一下 :)。
变更日志
-
版本 1.0.0
首次发布 -
版本 1.1.0
添加了枚举请求参数的方法(params_iter和str_params_iter)。 -
版本 1.1.1
更新依赖项版本。将依赖项对once_cell
的限制放宽。 -
版本 1.2.0
修复错误 #4:在高负载下,FastCGI响应未能正确交付。这使得FastCGI协议失败,并且连接在各种错误消息下被丢弃。此版本修复了此问题。现在,即使在高负载下,tokio-fastcgi
库也是稳定的。
依赖项
~2.5–4MB
~69K SLoC