#http-request #request #async #http

nightly reqwest-file

通过像常规异步文件一样使用Web资源

3个不稳定版本

0.2.1 2022年6月10日
0.2.0 2022年3月5日
0.1.0 2022年3月5日

#183 in #request

MIT/Apache

39KB
804

Reqwest-File

使用像常规异步文件一样的Web资源。

特性

  • 无不安全代码 (#[forbid(unsafe_code)])
  • 经过测试;代码覆盖率:100%

示例

use reqwest_file::RequestFile;
use tokio::io::{AsyncReadExt, AsyncSeekExt};

let client = reqwest::Client::new();
let request = client.get("http://httpbin.org/base64/aGVsbG8gd29ybGQ=");
let mut file: RequestFile = RequestFile::new(request);

let mut buffer = [0; 5];
assert_eq!(file.read(&mut buffer).await.unwrap(), 5);
assert_eq!(&buffer, b"hello");

let mut buffer = [0; 5];
assert_eq!(file.seek(std::io::SeekFrom::Current(1)).await.unwrap(), 6);
assert_eq!(file.read(&mut buffer).await.unwrap(), 5);
assert_eq!(&buffer, b"world");

文档

文档


lib.rs:

此库提供了RequestFile类型,该类型为Web资源提供了异步文件接口。

特性

  • 无不安全代码 (#[forbid(unsafe_code)])
  • 经过测试;代码覆盖率:100%

示例

use reqwest_file::RequestFile;
use tokio::io::{AsyncReadExt, AsyncSeekExt};

let client = reqwest::Client::new();
let request = client.get("http://httpbin.org/base64/aGVsbG8gd29ybGQ=");
let mut file: RequestFile = RequestFile::new(request);

let mut buffer = [0; 5];
assert_eq!(file.read(&mut buffer).await.unwrap(), 5);
assert_eq!(&buffer, b"hello");

let mut buffer = [0; 5];
assert_eq!(file.seek(std::io::SeekFrom::Current(1)).await.unwrap(), 6);
assert_eq!(file.read(&mut buffer).await.unwrap(), 5);
assert_eq!(&buffer, b"world");

依赖

~6–19MB
~260K SLoC