14个版本 (6个重大更新)
0.7.0 | 2024年7月12日 |
---|---|
0.5.1 | 2023年12月8日 |
0.4.0 | 2023年11月9日 |
0.3.0 | 2023年5月22日 |
0.2.0 | 2022年7月31日 |
#690 in 网络编程
每月下载量:1,546
用于 3 crates
45KB
976 行
Rust的reqwest流
库为reqwest提供HTTP响应流支持
- JSON数组流格式
- JSON行流格式
- CSV流
- Protobuf长度前缀流格式
- Arrow IPC流格式
当您从某些来源(如数据库、文件等)读取大量对象流时,此类响应非常有用,并且希望避免大量内存分配。
快速入门
Cargo.toml
[dependencies]
reqwest-streams = { version = "0.7", features=["json", "csv", "protobuf", "arrow"] }
示例代码
use reqwest_streams::*;
use futures::stream::BoxStream;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Deserialize)]
struct MyTestStructure {
some_test_field: String
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let _stream = reqwest::get("http://localhost:8080/json-array")
.await?
.json_array_stream::<MyTestStructure>(1024);
Ok(())
}
所有示例均可在示例目录中找到。
要运行示例,请使用
# cargo run --example json-stream
需要服务器支持吗?
有相同的功能
许可证
Apache软件许可证(ASL)
作者
Abdulla Abdurakhmanov
依赖
~6–19MB
~276K SLoC