#request #http-request #request-response #http #client

nightfly-twitchax-patch

为lunatic运行时提供高级HTTP客户端库

1个不稳定版本

0.1.6 2024年1月20日

#316HTTP客户端

MIT/Apache

195KB
3.5K SLoC

nightfly

此项目是致力于将reqwest库迁移到lunatic运行时的持续工作

工作情况

  • 请求和响应体中的json、文本和字节
  • brotli、gzip和deflate解压缩
  • 重定向处理
  • cookies
  • 分块响应
  • 客户端多个打开的TCP流处理
  • 超时(需要更多的测试)
  • 响应管道(需要chunk编码)
  • 连接池(需要更多使用lib以找到良好的方法)
  • 代理处理
  • 升级、socks5支持和websockets
  • 自定义DNS解析器

MIT/Apache-2 licensed CI

为lunatic运行时编写的一个易于使用的Rust HTTP客户端。

  • 普通正文、JSON、urlencoded、多部分(见示例)
  • 不同策略的重定向
  • 通过lunatic-native TLS的HTTPS(见示例)
  • Cookie存储
  • 基于函数的可自定义重定向策略(进行中)
  • HTTP代理(进行中)

示例

此示例使用Lunatic并启用了一些可选功能,因此你的Cargo.toml可能如下所示

[dependencies]
nightfly = { "0.1.0" }
lunatic = { "0.12.0" }

然后是代码

use std::collections::HashMap;

#[lunatic::main]
fn main() {
    let resp = nightfly::get("https://httpbin.org/ip")
        .unwrap()
        .json::<HashMap<String, String>>()
        .unwrap();
    println!("{:#?}", resp);
    Ok(())
}

要求

许可证

以下任一许可证下许可:

贡献

除非你明确声明,否则任何根据Apache-2.0许可证定义提交的旨在包含在作品中的贡献,都应按上述方式双许可,不得有任何附加条款或条件。

依赖关系

~19MB
~569K SLoC