Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
23ca61d
gzip: failing test
david-crespo Jun 18, 2025
023c2fe
make the tests pass by implementing gzip
david-crespo Jun 19, 2025
814b37c
don't compress if transfer encoding chunked (bad)
david-crespo Jun 19, 2025
e274044
improve streaming detection and streaming test
david-crespo Oct 2, 2025
1c4173b
work on review comments, especially test coverage
david-crespo Oct 2, 2025
9c724c2
try async-compression like tower
david-crespo Oct 2, 2025
abc77de
address another round of review
david-crespo Oct 2, 2025
6f8ce41
one last review cycle: unit tests
david-crespo Oct 2, 2025
208aea5
tighten things up
david-crespo Oct 2, 2025
0836813
handle multiple quality values, make headers case-insensitive
david-crespo Oct 2, 2025
465fb21
couple more correctness things
david-crespo Oct 2, 2025
7ce0240
undo a couple of unnecessary changes
david-crespo Oct 2, 2025
b8c3aeb
add config option for compression, default true
david-crespo Oct 22, 2025
d336815
merge main to resolve Cargo.lock conflict
david-crespo Oct 22, 2025
498d0f3
shorten the integration tests
david-crespo Oct 22, 2025
90339d3
shorten unit tests
david-crespo Oct 23, 2025
0b14d4f
properly test compression with streaming responses
david-crespo Oct 23, 2025
03a1d0f
comment on why we're removing headers
david-crespo Oct 28, 2025
52c5842
don't need compat feature on tokio-util
david-crespo Nov 18, 2025
76e00b2
always add Vary: Accept-Encoding for compressible content-types
david-crespo Nov 18, 2025
5f27a55
merge main
david-crespo Nov 18, 2025
0780483
default compression: false
david-crespo Nov 19, 2025
9be5395
consume large uncompressed response to avoid illumos hangs
david-crespo Nov 25, 2025
b35c144
adam review: changelog, enum config, shorter comment
david-crespo Nov 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
https://github.com/oxidecomputer/dropshot/compare/v0.16.4\...HEAD[Full list of commits]

* https://github.com/oxidecomputer/dropshot/pull/1475[#1475] Added `ClientSpecifiesVersionInHeader::on_missing` to provide a default version when the header is missing, intended for use when you're not in control of all clients
* https://github.com/oxidecomputer/dropshot/pull/1448[#1448] Added support for gzipping responses when clients request it through the `Accept-Encoding` header. Compression is off by default: existing consumers won't see a behavior change unless they opt in with `compression: CompressionConfig::Gzip`.

== 0.16.4 (released 2025-09-04)

Expand Down
74 changes: 74 additions & 0 deletions Cargo.lock

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

6 changes: 6 additions & 0 deletions dropshot/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ categories = ["network-programming", "web-programming::http-server"]
workspace = true

[dependencies]
async-compression = { version = "0.4", features = ["tokio", "gzip"] }
async-stream = "0.3.6"
async-trait = "0.1.89"
base64 = "0.22.1"
Expand Down Expand Up @@ -77,6 +78,10 @@ features = [ "derive" ]
version = "1.48"
features = [ "full" ]

[dependencies.tokio-util]
version = "0.7"
features = [ "io" ]

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Used for converting between AsyncRead/AsyncWrite from async-compression and the streams used by Body from hyper.

[dependencies.usdt]
version = "0.6.0"
optional = true
Expand All @@ -97,6 +102,7 @@ anyhow = "1.0.100"
async-channel = "2.5.0"
buf-list = "1.1.2"
expectorate = "1.2.0"
flate2 = "1.0"
hyper-rustls = "0.26.0"
hyper-staticfile = "0.10"
lazy_static = "1.5.0"
Expand Down
Loading