Skip to content

Commit 1b94353

Browse files
try brotli
1 parent 07a0fbb commit 1b94353

File tree

4 files changed

+47
-61
lines changed

4 files changed

+47
-61
lines changed

Cargo.lock

+37-50
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ rust-version = "1.63"
1414
[dependencies]
1515
abao = { version = "0.2.0", features = ["group_size_16k", "tokio_io"], default-features = false }
1616
anyhow = { version = "1", features = ["backtrace"] }
17-
async-compression = { version = "0.3.15", features = ["tokio", "zstd"] }
17+
async-compression = { version = "0.3.15", features = ["tokio", "brotli"] }
1818
base64 = "0.21.0"
1919
blake3 = "1.3.3"
2020
bytes = "1"

src/get.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ impl Stats {
106106
pub struct DataStream(AsyncSliceDecoder<RecvStream>);
107107

108108
type RecvStream =
109-
async_compression::tokio::bufread::ZstdDecoder<tokio::io::BufReader<quinn::RecvStream>>;
109+
async_compression::tokio::bufread::BrotliDecoder<tokio::io::BufReader<quinn::RecvStream>>;
110110

111111
impl DataStream {
112112
fn new(inner: RecvStream, hash: Hash) -> Self {
@@ -284,7 +284,7 @@ async fn handle_blob_response(
284284
assert!(buffer.is_empty());
285285
// Decompress data
286286
let decompress_reader =
287-
async_compression::tokio::bufread::ZstdDecoder::new(reader);
287+
async_compression::tokio::bufread::BrotliDecoder::new(reader);
288288
let decoder = DataStream::new(decompress_reader, hash);
289289
Ok(decoder)
290290
}

src/provider/mod.rs

+7-8
Original file line numberDiff line numberDiff line change
@@ -737,14 +737,10 @@ async fn send_blob<W: AsyncWrite + Unpin + Send + 'static>(
737737
// taking a reference does not work. spawn_blocking requires
738738
// 'static lifetime.
739739

740-
writer = tokio::task::spawn_blocking(move || {
741-
// Compress data
742-
let mut compressed_writer =
743-
async_compression::tokio::write::ZstdEncoder::with_quality(
744-
writer,
745-
async_compression::Level::Fastest,
746-
);
740+
// Compress data
741+
let mut compressed_writer = async_compression::tokio::write::BrotliEncoder::new(writer);
747742

743+
compressed_writer = tokio::task::spawn_blocking(move || {
748744
let file_reader = std::fs::File::open(&path)?;
749745
let outboard_reader = std::io::Cursor::new(outboard);
750746
let mut wrapper = SyncIoBridge::new(&mut compressed_writer);
@@ -755,9 +751,12 @@ async fn send_blob<W: AsyncWrite + Unpin + Send + 'static>(
755751
size,
756752
);
757753
let _copied = std::io::copy(&mut slice_extractor, &mut wrapper)?;
758-
std::io::Result::Ok(compressed_writer.into_inner())
754+
std::io::Result::Ok(compressed_writer)
759755
})
760756
.await??;
757+
compressed_writer.flush().await?;
758+
let writer = compressed_writer.into_inner();
759+
761760
Ok((SentStatus::Sent, writer))
762761
}
763762
_ => {

0 commit comments

Comments
 (0)