4个版本 (2个重大更新)

0.3.0 2024年1月18日
0.2.0 2023年9月29日
0.1.1 2023年9月26日
0.1.0 2023年9月21日

#322 in HTTP客户端

BSD-2-Clause

21KB
294 代码行

Radegast

picodata应用的HTTP客户端。非阻塞,Fiber友好型,由CBUS驱动。基于reqwest客户端构建。

此客户端的API与reqwest crate类似(更多内容请参阅文档)。

使用示例

此crate与reqwest的主要区别在于HTTP客户端的初始化。

首先,使用客户端构建器初始化客户端

    use radegast::ClientBuilder;
    use tarantool::cbus;
    use tarantool::fiber::Fiber;

    pub const CBUS_ENDPOINT: &str = "tests_endpoint";

    // initialize cbus first
    pub fn init_cbus() {
        let mut fiber = Fiber::new("cbus_endpoint_f", &mut |_: Box<()>| {
            let cbus_endpoint = cbus::Endpoint::new(CBUS_ENDPOINT).unwrap();
            cbus_endpoint.cbus_loop();
            0
        });
        fiber.start(());
    }

    fn main() {
        init_cbus();
        let client = radegast::ClientBuilder::new().build(CBUS_ENDPOINT).unwrap();
    }

如果您愿意,可以手动定义一个tokio运行时(而不是默认),用于运行HTTP请求和reqwest客户端底层实例(请参阅ClientBuilder方法)。现在您有机会发起一个HTTP请求

    let response = client.get("https://google.ru").send().unwrap();
    println!("{response:?}");

要熟悉请求API,您可以查看reqwest文档。

测试

我们使用tarantool-test。运行测试

    cargo build
    tarantool-test -p ./target/debug/libtests.so

依赖项

~11–24MB
~376K SLoC