5 个不稳定版本
0.8.0 | 2024 年 8 月 12 日 |
---|---|
0.7.2 | 2023 年 9 月 10 日 |
0.7.1 | 2023 年 9 月 2 日 |
0.7.0 | 2023 年 8 月 31 日 |
0.6.0 | 2021 年 11 月 10 日 |
#82 在 HTTP 客户端 中
693 每月下载次数
在 4 crates 中使用
35KB
647 行
http-range-client
具有针对顺序读取优化的缓冲区的 HTTP Range 请求的 HTTP 客户端。
实现了 Seek+Read 以支持阻塞客户端,使其成为本地文件的直接替代品。
使用示例
use http_range_client::*;
let mut client = BufferedHttpRangeClient::new("https://flatgeobuf.org/test/data/countries.fgb");
let bytes = client.min_req_size(256).get_range(0, 3).await?;
assert_eq!(bytes, b"fgb");
let version = client.get_bytes(1).await?; // From buffer - no HTTP request!
assert_eq!(version, [3]);
let mut reader = HttpReader::new("https://www.rust-lang.net.cn/static/images/favicon-32x32.png");
reader.seek(SeekFrom::Start(1)).ok();
let mut bytes = [0; 3];
reader.read_exact(&mut bytes)?;
assert_eq!(&bytes, b"PNG");
支持的 HTTP 客户端(功能标志)
- reqwest 异步 (
reqwest-async
,默认) - reqwest 阻塞 (
reqwest-sync
,默认):在 Wasm 目标上不受支持 - ureq 阻塞 (
ureq-sync
):在 Wasm 目标上不受支持
其他客户端可以通过 AsyncBufferedHttpRangeClient
或 SyncBufferedHttpRangeClient
适配器使用,在实现 AsyncHttpRangeClient
或 SyncHttpRangeClient
特性后。
依赖项
~0.5–14MB
~180K SLoC