[package] name = "tower-async-http" description = """ Tower Async middleware and utilities for HTTP clients and servers. An "Async Trait" fork from the original Tower Library. """ version = "0.2.0" authors = ["Glen De Cauwsemaecker "] edition = "2021" license = "MIT" repository = "https://github.com/plabayo/tower-async" homepage = "https://github.com/plabayo/tower-async" categories = ["asynchronous", "network-programming", "web-programming"] keywords = ["io", "async", "futures", "service", "http"] [dependencies] async-lock = "3.1" bitflags = "2.0" bytes = "1" futures-core = "0.3" futures-util = { version = "0.3", default_features = false, features = [] } http = "1" http-body = "1" http-body-util = "0.1" pin-project-lite = "0.2" tower-async-layer = { version = "0.2", path = "../tower-async-layer" } tower-async-service = { version = "0.2", path = "../tower-async-service" } # optional dependencies async-compression = { version = "0.4", optional = true, features = ["tokio"] } base64 = { version = "0.21", optional = true } http-range-header = "0.4.0" httpdate = { version = "1.0", optional = true } iri-string = { version = "0.7", optional = true } mime = { version = "0.3", optional = true, default_features = false } mime_guess = { version = "2", optional = true, default_features = false } percent-encoding = { version = "2.1", optional = true } tokio = { version = "1.6", optional = true, default_features = false } tokio-util = { version = "0.7", optional = true, default_features = false, features = ["io"] } tower-async = { version = "0.2", path = "../tower-async", optional = true } tracing = { version = "0.1", default_features = false, optional = true } uuid = { version = "1.0", features = ["v4"], optional = true } [dev-dependencies] axum = { git = "https://github.com/tokio-rs/axum", branch = "david/hyper-1.0-rc.x" } brotli = "3" bytes = "1" clap = { version = "4.3", features = ["derive"] } flate2 = "1.0" futures = "0.3" hyper = { version = "1.0", features = ["full"] } hyper-util = { version = "0.1", features = ["full"] } once_cell = "1" serde_json = "1.0" sync_wrapper = "0.1" tokio = { version = "1", features = ["full"] } tower = { version = "0.4", features = ["util", "make", "timeout"] } tower-async = { path = "../tower-async", features = ["full"] } tower-async-bridge = { path = "../tower-async-bridge", features = ["full"] } tower-async-http = { path = ".", features = ["full"] } tower-async-hyper = { path = "../tower-async-hyper" } tracing = { version = "0.1", default_features = false } tracing-subscriber = "0.3" uuid = { version = "1.0", features = ["v4"] } 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", "normalize-path", "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"] cors = [] follow-redirect = ["iri-string", "tower-async/util"] fs = ["tokio/fs", "tokio-util/io", "tokio/io-util", "mime_guess", "mime", "percent-encoding", "httpdate", "set-status", "futures-util/alloc", "tracing"] limit = [] map-request-body = [] map-response-body = [] normalize-path = [] propagate-header = [] redirect = [] request-id = ["uuid"] sensitive-headers = [] set-header = [] set-status = [] timeout = ["tokio/time", "tokio/macros"] trace = ["tracing"] util = ["tower-async"] validate-request = ["mime"] compression-br = ["async-compression/brotli", "tokio-util", "tokio"] compression-deflate = ["async-compression/zlib", "tokio-util", "tokio"] compression-full = ["compression-br", "compression-deflate", "compression-gzip", "compression-zstd"] compression-gzip = ["async-compression/gzip", "tokio-util", "tokio"] compression-zstd = ["async-compression/zstd", "tokio-util", "tokio"] decompression-br = ["async-compression/brotli", "tokio-util", "tokio"] decompression-deflate = ["async-compression/zlib", "tokio-util", "tokio"] decompression-full = ["decompression-br", "decompression-deflate", "decompression-gzip", "decompression-zstd"] decompression-gzip = ["async-compression/gzip", "tokio-util", "tokio"] decompression-zstd = ["async-compression/zstd", "tokio-util", "tokio"] [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"] [package.metadata.playground] features = ["full"] [package.metadata.cargo-public-api-crates] allowed = [ "bytes", "http", "http_body", "mime", "tokio", "tower_async", "tower_async_layer", "tower_async_service", "tracing", "tracing_core", ]