3个不稳定版本
0.2.1 | 2022年6月10日 |
---|---|
0.2.0 | 2022年3月5日 |
0.1.0 | 2022年3月5日 |
#183 in #request
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