9个版本 (5个重大变更)

0.6.0 2024年7月24日
0.5.0 2024年5月22日
0.4.1 2024年3月31日
0.3.0 2024年2月16日
0.1.0 2023年12月29日

#247 in HTTP客户端

Download history 15/week @ 2024-04-15 6/week @ 2024-04-22 48/week @ 2024-04-29 391/week @ 2024-05-20 81/week @ 2024-05-27 18/week @ 2024-06-03 14/week @ 2024-06-10 8/week @ 2024-06-17 26/week @ 2024-06-24 46/week @ 2024-07-01 79/week @ 2024-07-08 60/week @ 2024-07-15 205/week @ 2024-07-22 177/week @ 2024-07-29

每月523次下载
用于 2 个Crate

Apache-2.0

700KB
20K SLoC

xitca的HTTP库


lib.rs:

针对Service trait的http处理的Http模块。

此Crate旨在同时提供低开销和易用性。所有http协议都可以分别使用相应的功能标志或一起使用,以处理不同协议。

示例

use std::convert::Infallible;

use xitca_http::{
    http::{IntoResponse, Request, RequestExt, Response},
    HttpServiceBuilder,
    RequestBody,
    ResponseBody
};
use xitca_service::{fn_service, Service, ServiceExt};

// xitca-http has to run inside a tcp/udp server.
xitca_server::Builder::new()
    // create http service with given name, socket address and service logic.
    .bind("xitca-http", "localhost:0",
        // a simple async function service produce hello world string as http response.
        fn_service(|req: Request<RequestExt<RequestBody>>| async {
            Ok::<Response<ResponseBody>, Infallible>(req.into_response("Hello,World!"))
        })
        // http service builder is a middleware take control of above function service
        // and bridge tcp/udp transport with the http service.
        .enclosed(HttpServiceBuilder::new())
    )?
    .build()

依赖项

~1–13MB
~174K SLoC