[package] name = "axum" version = "0.6.12" categories = ["asynchronous", "network-programming", "web-programming::http-server"] description = "Web framework that focuses on ergonomics and modularity" edition = "2021" rust-version = "1.60" homepage = "https://github.com/tokio-rs/axum" keywords = ["http", "web", "framework"] license = "MIT" readme = "README.md" repository = "https://github.com/tokio-rs/axum" [features] default = ["form", "http1", "json", "matched-path", "original-uri", "query", "tokio", "tower-log"] form = ["dep:serde_urlencoded"] http1 = ["hyper/http1"] http2 = ["hyper/http2"] json = ["dep:serde_json", "dep:serde_path_to_error"] macros = ["dep:axum-macros"] matched-path = [] multipart = ["dep:multer"] original-uri = [] query = ["dep:serde_urlencoded"] tokio = ["dep:tokio", "hyper/server", "tower/make"] tower-log = ["tower/log"] ws = ["tokio", "dep:tokio-tungstenite", "dep:sha1", "dep:base64"] # Required for intra-doc links to resolve correctly __private_docs = ["tower/full", "dep:tower-http"] [dependencies] async-trait = "0.1.67" axum-core = { path = "../axum-core", version = "0.3.3" } bitflags = "1.0" bytes = "1.0" futures-util = { version = "0.3", default-features = false, features = ["alloc"] } http = "0.2.9" http-body = "1.0.0-rc.2" hyper = "1.0.0-rc.3" itoa = "1.0.5" matchit = "0.7" memchr = "2.4.1" mime = "0.3.16" percent-encoding = "2.1" pin-project-lite = "0.2.7" serde = "1.0" sync_wrapper = "0.1.1" tower = { version = "0.4.13", default-features = false, features = ["util"] } tower-layer = "0.3.2" tower-service = "0.3" # optional dependencies axum-macros = { path = "../axum-macros", version = "0.3.7", optional = true } base64 = { version = "0.21.0", optional = true } headers = { version = "0.3.7", optional = true } multer = { version = "2.0.0", optional = true } serde_json = { version = "1.0", features = ["raw_value"], optional = true } serde_path_to_error = { version = "0.1.8", optional = true } serde_urlencoded = { version = "0.7", optional = true } sha1 = { version = "0.10", optional = true } tokio = { package = "tokio", version = "1.25.0", features = ["time"], optional = true } tokio-tungstenite = { version = "0.18.0", optional = true } [dependencies.tower-http] version = "0.4" optional = true features = [ # all tower-http features except (de)?compression-zstd which doesn't # build on `--target armv5te-unknown-linux-musleabi` "add-extension", "auth", "catch-panic", "compression-br", "compression-deflate", "compression-gzip", "cors", "decompression-br", "decompression-deflate", "decompression-gzip", "follow-redirect", "fs", "limit", "map-request-body", "map-response-body", "metrics", "normalize-path", "propagate-header", "redirect", "request-id", "sensitive-headers", "set-header", "set-status", "timeout", "trace", "util", "validate-request", ] [build-dependencies] rustversion = "1.0.9" [dev-dependencies] anyhow = "1.0" axum-macros = { path = "../axum-macros", version = "0.3.7", features = ["__private"] } quickcheck = "1.0" quickcheck_macros = "1.0" reqwest = { version = "0.11.14", default-features = false, features = ["json", "stream", "multipart"] } rustversion = "1.0.9" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" time = { version = "0.3", features = ["serde-human-readable"] } tokio = { package = "tokio", version = "1.25.0", features = ["macros", "rt", "rt-multi-thread", "net", "test-util"] } tokio-stream = "0.1" tracing = "0.1" uuid = { version = "1.0", features = ["serde", "v4"] } [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "docsrs"] [dev-dependencies.tower] package = "tower" version = "0.4.10" features = [ "util", "timeout", "limit", "load-shed", "steer", "filter", ] [dev-dependencies.tower-http] version = "0.4" features = [ # all tower-http features except (de)?compression-zstd which doesn't # build on `--target armv5te-unknown-linux-musleabi` "add-extension", "auth", "catch-panic", "compression-br", "compression-deflate", "compression-gzip", "cors", "decompression-br", "decompression-deflate", "decompression-gzip", "follow-redirect", "fs", "limit", "map-request-body", "map-response-body", "metrics", "normalize-path", "propagate-header", "redirect", "request-id", "sensitive-headers", "set-header", "set-status", "timeout", "trace", "util", "validate-request", ] [package.metadata.playground] features = [ "http1", "http2", "json", "multipart", "ws", ] [package.metadata.cargo-public-api-crates] allowed = [ "axum_core", "bytes", "futures_core", "futures_sink", "futures_util", "headers_core", "http", "http_body", "hyper", "serde", "tokio", "tower_layer", "tower_service", ] [[bench]] name = "benches" harness = false