4个版本

0.11.16 2023年11月15日
0.11.15 2023年4月19日
0.11.14 2023年2月5日
0.11.12 2022年10月2日

#85WebAssembly

Download history 477/week @ 2024-04-26 386/week @ 2024-05-03 224/week @ 2024-05-10 321/week @ 2024-05-17 394/week @ 2024-05-24 271/week @ 2024-05-31 232/week @ 2024-06-07 275/week @ 2024-06-14 309/week @ 2024-06-21 256/week @ 2024-06-28 155/week @ 2024-07-05 244/week @ 2024-07-12 321/week @ 2024-07-19 163/week @ 2024-07-26 165/week @ 2024-08-02 138/week @ 2024-08-09

815 每月下载量
用于 11 crates

MIT/Apache

525KB
10K SLoC

适用于WebAssembly的reqwest

一个便捷、功能齐全的Rust HTTP客户端。这是一个从原始的 reqwest 分支,支持WebAssembly编译目标。这允许reqwest应用程序在WasmEdge运行时中作为轻量级且安全的替代方案,替代Linux容器中的本地编译应用程序。

有关更多详细信息和使用示例,请参阅上游 reqwest 源代码和这些示例

注意:reqwest_wasi尚不支持SSL / TLS连接。

  • 纯文本正文,JSON,表单编码,多部分
  • 可自定义的重定向策略
  • HTTP代理
  • Cookie存储

示例

此异步示例使用Tokio并启用了一些可选功能,因此您的Cargo.toml可能看起来像这样

[dependencies]
reqwest_wasi = { version = "0.11", features = ["json"] }
tokio_wasi = { version = "1.21", features = ["full"] }

然后是代码

use std::collections::HashMap;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let resp = reqwest::get("http://eu.httpbin.org/ip")
        .await?
        .json::<HashMap<String, String>>()
        .await?;
    println!("{:#?}", resp);
    Ok(())
}

阻塞客户端

有一个可选的“阻塞”客户端API可以启用

[dependencies]
reqwest_wasi = { version = "0.11", features = ["blocking", "json"] }
use std::collections::HashMap;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let resp = reqwest::blocking::get("http://eu.httpbin.org/ip")?
        .json::<HashMap<String, String>>()?;
    println!("{:#?}", resp);
    Ok(())
}

许可

根据以下任一项许可

贡献

除非您明确声明,否则根据Apache-2.0许可证定义的,您有意提交以包含在作品中的任何贡献,应如上所述双重许可,没有任何额外的条款或条件。

依赖关系

~2–23MB
~428K SLoC