[package] name = "tower-http" description = "Tower middleware and utilities for HTTP clients and servers" version = "0.6.11" authors = ["Tower Maintainers "] edition = "2018" license = "MIT" readme = "../README.md" repository = "https://github.com/tower-rs/tower-http" homepage = "https://github.com/tower-rs/tower-http" categories = ["asynchronous", "network-programming", "web-programming"] keywords = ["io", "async", "futures", "service", "http"] rust-version = "1.64" [dependencies] bitflags = "2.0.2" bytes = "1" http = "1.0" pin-project-lite = "0.2.7" tower-layer = "0.3.3" tower-service = "0.3" # optional dependencies async-compression = { version = "0.4", optional = true, features = ["tokio"] } base64 = { version = "0.22", optional = true } futures-core = { version = "0.3", optional = true, default-features = false } futures-util = { version = "0.3.14", optional = true, default-features = false } http-body = { version = "1.0.0", optional = true } http-body-util = { version = "0.1.0", optional = true } http-range-header = { version = "0.4.0", optional = true } mime = { version = "0.3.17", optional = true, default-features = false } mime_guess = { version = "2", optional = true, default-features = false } percent-encoding = { version = "2.1.0", optional = true } url = { version = "2.5", optional = true } tokio = { version = "1.6", optional = true, default-features = false } tokio-util = { version = "0.7", optional = true, default-features = false, features = ["io"] } tower = { version = "0.5", optional = true } tracing = { version = "0.1", default-features = false, optional = true } httpdate = { version = "1.0", optional = true } uuid = { version = "1.0", features = ["v4"], optional = true } [dev-dependencies] brotli = "8" bytes = "1" flate2 = "1.0" futures-util = "0.3.14" http-body = "1.0.0" http-body-util = "0.1.0" hyper = "1" hyper-util = { version = "0.1", features = ["client-legacy", "http1", "server", "service", "tokio"] } once_cell = "1" serde_json = "1.0" sync_wrapper = "1" tokio = { version = "1", features = ["full"] } tower = { version = "0.5", features = ["buffer", "util", "retry", "make", "timeout"] } tracing-subscriber = "0.3" zstd = "0.13" [features] default = [] full = [ "add-extension", "auth", "catch-panic", "compression-full", "cors", "decompression-full", "follow-redirect", "fs", "limit", "map-request-body", "map-response-body", "metrics", "normalize-path", "on-early-drop", "propagate-header", "redirect", "request-id", "sensitive-headers", "set-header", "set-status", "timeout", "trace", "util", "validate-request", ] add-extension = [] auth = ["base64", "validate-request"] catch-panic = ["tracing", "futures-util/std", "dep:http-body", "dep:http-body-util"] cors = [] follow-redirect = ["futures-util", "dep:http-body", "dep:url", "tower/util"] fs = ["dep:tokio", "tokio?/fs", "tokio?/io-util", "futures-core", "futures-util", "dep:http-body", "dep:http-body-util", "tokio-util/io", "dep:http-range-header", "mime_guess", "mime", "percent-encoding", "httpdate", "set-status", "futures-util/alloc"] limit = ["dep:http-body", "dep:http-body-util"] map-request-body = [] map-response-body = [] metrics = ["dep:http-body", "dep:tokio", "tokio?/time"] normalize-path = [] on-early-drop = ["dep:http-body"] propagate-header = [] redirect = [] request-id = ["uuid"] sensitive-headers = [] set-header = [] set-status = [] timeout = ["dep:http-body", "dep:tokio", "tokio?/time"] trace = ["dep:http-body", "tracing"] util = ["tower"] validate-request = ["mime"] compression-br = ["dep:async-compression", "async-compression?/brotli", "futures-core", "dep:http-body", "tokio-util", "dep:tokio"] compression-deflate = ["dep:async-compression", "async-compression?/zlib", "futures-core", "dep:http-body", "tokio-util", "dep:tokio"] compression-full = ["compression-br", "compression-deflate", "compression-gzip", "compression-zstd"] compression-gzip = ["dep:async-compression", "async-compression?/gzip", "futures-core", "dep:http-body", "tokio-util", "dep:tokio"] compression-zstd = ["dep:async-compression", "async-compression?/zstd", "futures-core", "dep:http-body", "tokio-util", "dep:tokio"] decompression-br = ["dep:async-compression", "async-compression?/brotli", "futures-core", "dep:http-body", "dep:http-body-util", "tokio-util", "dep:tokio"] decompression-deflate = ["dep:async-compression", "async-compression?/zlib", "futures-core", "dep:http-body", "dep:http-body-util", "tokio-util", "dep:tokio"] decompression-full = ["decompression-br", "decompression-deflate", "decompression-gzip", "decompression-zstd"] decompression-gzip = ["dep:async-compression", "async-compression?/gzip", "futures-core", "dep:http-body", "dep:http-body-util", "tokio-util", "dep:tokio"] decompression-zstd = ["dep:async-compression", "async-compression?/zstd", "futures-core", "dep:http-body", "dep:http-body-util", "tokio-util", "dep:tokio"] # FIXME: rip this out come 0.7.0. # ref: https://github.com/tower-rs/tower-http/pull/666#issuecomment-4382555061 tokio = [] async-compression = [] [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"] [package.metadata.playground] features = ["full"] [package.metadata.cargo_check_external_types] allowed_external_types = [ "bytes::*", "http::*", "http_body::*", "mime::*", "tokio::*", "tower::*", "tower_layer::*", "tower_service::*", "tracing::*", "tracing_core::*", ]