Skip to content

Commit

Permalink
chore: use stream feature of reqwest
Browse files Browse the repository at this point in the history
  • Loading branch information
anatawa12 committed Jan 26, 2023
1 parent be62276 commit fd1cf49
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 9 deletions.
15 changes: 15 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ indexmap = { version = "1.9.2", features = ["serde"] }
itertools = "0.10.5"
log = "0.4.17"
pin-project-lite = "0.2.9"
reqwest = { version = "0.11.14", features = ["blocking", "serde_json", "json", "native-tls-vendored"] }
reqwest = { version = "0.11.14", features = ["blocking", "serde_json", "json", "native-tls-vendored", "stream"] }
semver = { version = "1.0.16", features = ["serde"] }
serde = { version = "1.0.152", features = ["derive", "rc"] }
serde_json = { version = "1.0.91", features = ["preserve_order"] }
Expand Down
18 changes: 10 additions & 8 deletions src/vpm/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -358,26 +358,28 @@ impl Environment {
.open(&zip_path)
.await?;

// TODO: streaming
let got_data = self
let mut sha256 = Sha256::default();

let mut stream = self
.http
.get(&package.url)
.send()
.await
.err_mapped()?
.error_for_status()
.err_mapped()?
.bytes()
.await
.err_mapped()?;
cache_file.write_all(&got_data).await?;
.bytes_stream();

while let Some(data) = stream.try_next().await.err_mapped()? {
sha256.update(&data);
cache_file.write_all(&data).await?;
}

cache_file.flush().await?;
cache_file.seek(SeekFrom::Start(0)).await?;

// write sha file
let mut sha_file = File::create(&sha_path).await?;
let mut sha256 = Sha256::default();
sha256.update(&got_data);
let hash_hex = to_hex(&sha256.finalize()[..]);
let sha_file_content = format!("{} {}\n", hash_hex, zip_file_name);
sha_file.write_all(sha_file_content.as_bytes()).await?;
Expand Down

0 comments on commit fd1cf49

Please sign in to comment.