Skip to content

Commit c6c92f2

Browse files
tottotojplatte
authored andcommitted
Make http-body and http-body-util dependencies optional
1 parent 18219fc commit c6c92f2

File tree

2 files changed

+30
-19
lines changed

2 files changed

+30
-19
lines changed

tower-http/Cargo.toml

+21-19
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ rust-version = "1.66"
1616
bitflags = "2.0.2"
1717
bytes = "1"
1818
http = "1.0"
19-
http-body = "1.0.0"
20-
http-body-util = "0.1.0"
2119
pin-project-lite = "0.2.7"
2220
tower-layer = "0.3"
2321
tower-service = "0.3"
@@ -27,6 +25,8 @@ async-compression = { version = "0.4", optional = true, features = ["tokio"] }
2725
base64 = { version = "0.21", optional = true }
2826
futures-core = { version = "0.3", optional = true, default_features = false }
2927
futures-util = { version = "0.3.14", optional = true, default_features = false }
28+
http-body = { version = "1.0.0", optional = true }
29+
http-body-util = { version = "0.1.0", optional = true }
3030
http-range-header = { version = "0.4.0", optional = true }
3131
iri-string = { version = "0.7.0", optional = true }
3232
mime = { version = "0.3.17", optional = true, default_features = false }
@@ -45,6 +45,8 @@ brotli = "3"
4545
bytes = "1"
4646
flate2 = "1.0"
4747
futures-util = "0.3.14"
48+
http-body = "1.0.0"
49+
http-body-util = "0.1.0"
4850
hyper-util = { version = "0.1", features = ["client-legacy", "http1", "tokio"] }
4951
once_cell = "1"
5052
serde_json = "1.0"
@@ -84,38 +86,38 @@ full = [
8486
]
8587

8688
add-extension = []
87-
auth = ["base64", "validate-request"]
88-
catch-panic = ["tracing", "futures-util/std"]
89+
auth = ["base64", "dep:http-body", "validate-request"]
90+
catch-panic = ["tracing", "futures-util/std", "dep:http-body", "dep:http-body-util"]
8991
cors = []
90-
follow-redirect = ["futures-util", "iri-string", "tower/util"]
91-
fs = ["futures-util", "tokio/fs", "tokio-util/io", "tokio/io-util", "dep:http-range-header", "mime_guess", "mime", "percent-encoding", "httpdate", "set-status", "futures-util/alloc", "tracing"]
92-
limit = []
92+
follow-redirect = ["futures-util", "dep:http-body", "iri-string", "tower/util"]
93+
fs = ["futures-util", "dep:http-body", "dep:http-body-util", "tokio/fs", "tokio-util/io", "tokio/io-util", "dep:http-range-header", "mime_guess", "mime", "percent-encoding", "httpdate", "set-status", "futures-util/alloc", "tracing"]
94+
limit = ["dep:http-body", "dep:http-body-util"]
9395
map-request-body = []
9496
map-response-body = []
95-
metrics = ["tokio/time"]
97+
metrics = ["dep:http-body", "tokio/time"]
9698
normalize-path = []
9799
propagate-header = []
98100
redirect = []
99101
request-id = ["uuid"]
100102
sensitive-headers = []
101103
set-header = []
102104
set-status = []
103-
timeout = ["tokio/time"]
104-
trace = ["tracing"]
105+
timeout = ["dep:http-body", "tokio/time"]
106+
trace = ["dep:http-body", "tracing"]
105107
util = ["tower"]
106-
validate-request = ["mime"]
108+
validate-request = ["dep:http-body", "mime"]
107109

108-
compression-br = ["async-compression/brotli", "futures-core", "tokio-util", "tokio"]
109-
compression-deflate = ["async-compression/zlib", "futures-core", "tokio-util", "tokio"]
110+
compression-br = ["async-compression/brotli", "futures-core", "dep:http-body", "tokio-util", "tokio"]
111+
compression-deflate = ["async-compression/zlib", "futures-core", "dep:http-body", "tokio-util", "tokio"]
110112
compression-full = ["compression-br", "compression-deflate", "compression-gzip", "compression-zstd"]
111-
compression-gzip = ["async-compression/gzip", "futures-core", "tokio-util", "tokio"]
112-
compression-zstd = ["async-compression/zstd", "futures-core", "tokio-util", "tokio"]
113+
compression-gzip = ["async-compression/gzip", "futures-core", "dep:http-body", "tokio-util", "tokio"]
114+
compression-zstd = ["async-compression/zstd", "futures-core", "dep:http-body", "tokio-util", "tokio"]
113115

114-
decompression-br = ["async-compression/brotli", "futures-core", "tokio-util", "tokio"]
115-
decompression-deflate = ["async-compression/zlib", "futures-core", "tokio-util", "tokio"]
116+
decompression-br = ["async-compression/brotli", "futures-core", "dep:http-body", "dep:http-body-util", "tokio-util", "tokio"]
117+
decompression-deflate = ["async-compression/zlib", "futures-core", "dep:http-body", "dep:http-body-util", "tokio-util", "tokio"]
116118
decompression-full = ["decompression-br", "decompression-deflate", "decompression-gzip", "decompression-zstd"]
117-
decompression-gzip = ["async-compression/gzip", "futures-core", "tokio-util", "tokio"]
118-
decompression-zstd = ["async-compression/zstd", "futures-core", "tokio-util", "tokio"]
119+
decompression-gzip = ["async-compression/gzip", "futures-core", "dep:http-body", "dep:http-body-util", "tokio-util", "tokio"]
120+
decompression-zstd = ["async-compression/zstd", "futures-core", "dep:http-body", "dep:http-body-util", "tokio-util", "tokio"]
119121

120122
[package.metadata.docs.rs]
121123
all-features = true

tower-http/src/lib.rs

+9
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,15 @@ pub use self::builder::ServiceBuilderExt;
343343
#[cfg(feature = "validate-request")]
344344
pub mod validate_request;
345345

346+
#[cfg(any(
347+
feature = "catch-panic",
348+
feature = "decompression-br",
349+
feature = "decompression-deflate",
350+
feature = "decompression-gzip",
351+
feature = "decompression-zstd",
352+
feature = "fs",
353+
feature = "limit",
354+
))]
346355
pub mod body;
347356

348357
/// The latency unit used to report latencies by middleware.

0 commit comments

Comments
 (0)