1[package] 2name = "axum" 3version = "0.6.20" 4categories = ["asynchronous", "network-programming", "web-programming::http-server"] 5description = "Web framework that focuses on ergonomics and modularity" 6edition = "2021" 7rust-version = "1.63" 8homepage = "https://github.com/tokio-rs/axum" 9keywords = ["http", "web", "framework"] 10license = "MIT" 11readme = "README.md" 12repository = "https://github.com/tokio-rs/axum" 13 14[features] 15default = ["form", "http1", "json", "matched-path", "original-uri", "query", "tokio", "tower-log"] 16form = ["dep:serde_urlencoded"] 17http1 = ["hyper/http1"] 18http2 = ["hyper/http2"] 19json = ["dep:serde_json", "dep:serde_path_to_error"] 20macros = ["dep:axum-macros"] 21matched-path = [] 22multipart = ["dep:multer"] 23original-uri = [] 24query = ["dep:serde_urlencoded"] 25tokio = ["dep:tokio", "hyper/server", "hyper/tcp", "hyper/runtime", "tower/make"] 26tower-log = ["tower/log"] 27tracing = ["dep:tracing", "axum-core/tracing"] 28ws = ["tokio", "dep:tokio-tungstenite", "dep:sha1", "dep:base64"] 29 30# Required for intra-doc links to resolve correctly 31__private_docs = ["tower/full", "dep:tower-http"] 32 33[dependencies] 34async-trait = "0.1.67" 35axum-core = { path = "../axum-core", version = "0.3.4" } 36bitflags = "1.0" 37bytes = "1.0" 38futures-util = { version = "0.3", default-features = false, features = ["alloc"] } 39http = "0.2.9" 40http-body = "0.4.4" 41hyper = { version = "0.14.24", features = ["stream"] } 42itoa = "1.0.5" 43matchit = "0.7" 44memchr = "2.4.1" 45mime = "0.3.16" 46percent-encoding = "2.1" 47pin-project-lite = "0.2.7" 48serde = "1.0" 49sync_wrapper = "0.1.1" 50tower = { version = "0.4.13", default-features = false, features = ["util"] } 51tower-layer = "0.3.2" 52tower-service = "0.3" 53 54# optional dependencies 55axum-macros = { path = "../axum-macros", version = "0.3.8", optional = true } 56base64 = { version = "0.21.0", optional = true } 57headers = { version = "0.3.7", optional = true } 58multer = { version = "2.0.0", optional = true } 59serde_json = { version = "1.0", features = ["raw_value"], optional = true } 60serde_path_to_error = { version = "0.1.8", optional = true } 61serde_urlencoded = { version = "0.7", optional = true } 62sha1 = { version = "0.10", optional = true } 63tokio = { package = "tokio", version = "1.25.0", features = ["time"], optional = true } 64tokio-tungstenite = { version = "0.20", optional = true } 65tracing = { version = "0.1", default-features = false, optional = true } 66 67[dependencies.tower-http] 68version = "0.4" 69optional = true 70features = [ 71 # all tower-http features except (de)?compression-zstd which doesn't 72 # build on `--target armv5te-unknown-linux-musleabi` 73 "add-extension", 74 "auth", 75 "catch-panic", 76 "compression-br", 77 "compression-deflate", 78 "compression-gzip", 79 "cors", 80 "decompression-br", 81 "decompression-deflate", 82 "decompression-gzip", 83 "follow-redirect", 84 "fs", 85 "limit", 86 "map-request-body", 87 "map-response-body", 88 "metrics", 89 "normalize-path", 90 "propagate-header", 91 "redirect", 92 "request-id", 93 "sensitive-headers", 94 "set-header", 95 "set-status", 96 "timeout", 97 "trace", 98 "util", 99 "validate-request", 100] 101 102[build-dependencies] 103rustversion = "1.0.9" 104 105[dev-dependencies] 106anyhow = "1.0" 107axum-macros = { path = "../axum-macros", version = "0.3.8", features = ["__private"] } 108quickcheck = "1.0" 109quickcheck_macros = "1.0" 110reqwest = { version = "0.11.14", default-features = false, features = ["json", "stream", "multipart"] } 111rustversion = "1.0.9" 112serde = { version = "1.0", features = ["derive"] } 113serde_json = "1.0" 114time = { version = "0.3", features = ["serde-human-readable"] } 115tokio = { package = "tokio", version = "1.25.0", features = ["macros", "rt", "rt-multi-thread", "net", "test-util"] } 116tokio-stream = "0.1" 117tracing = "0.1" 118tracing-subscriber = { version = "0.3", features = ["json"] } 119uuid = { version = "1.0", features = ["serde", "v4"] } 120 121[package.metadata.docs.rs] 122all-features = true 123rustdoc-args = ["--cfg", "docsrs"] 124 125[dev-dependencies.tower] 126package = "tower" 127version = "0.4.10" 128features = [ 129 "util", 130 "timeout", 131 "limit", 132 "load-shed", 133 "steer", 134 "filter", 135] 136 137[dev-dependencies.tower-http] 138version = "0.4" 139features = [ 140 # all tower-http features except (de)?compression-zstd which doesn't 141 # build on `--target armv5te-unknown-linux-musleabi` 142 "add-extension", 143 "auth", 144 "catch-panic", 145 "compression-br", 146 "compression-deflate", 147 "compression-gzip", 148 "cors", 149 "decompression-br", 150 "decompression-deflate", 151 "decompression-gzip", 152 "follow-redirect", 153 "fs", 154 "limit", 155 "map-request-body", 156 "map-response-body", 157 "metrics", 158 "normalize-path", 159 "propagate-header", 160 "redirect", 161 "request-id", 162 "sensitive-headers", 163 "set-header", 164 "set-status", 165 "timeout", 166 "trace", 167 "util", 168 "validate-request", 169] 170 171[package.metadata.playground] 172features = [ 173 "http1", 174 "http2", 175 "json", 176 "multipart", 177 "ws", 178] 179 180[package.metadata.cargo-public-api-crates] 181allowed = [ 182 "async_trait", 183 "axum_core", 184 "axum_macros", 185 "bytes", 186 "futures_core", 187 "futures_sink", 188 "futures_util", 189 "headers", 190 "headers_core", 191 "http", 192 "http_body", 193 "hyper", 194 "serde", 195 "serde_json", 196 "tower_layer", 197 "tower_service", 198] 199 200[[bench]] 201name = "benches" 202harness = false 203