Files
axum/axum/Cargo.toml
T

240 lines
6.4 KiB
TOML

[package]
name = "axum"
version = "0.8.7" # remember to bump the version that axum-extra depends on
categories = ["asynchronous", "network-programming", "web-programming::http-server"]
description = "Web framework that focuses on ergonomics and modularity"
edition = "2021"
rust-version = { workspace = true }
homepage = "https://github.com/tokio-rs/axum"
keywords = ["http", "web", "framework"]
license = "MIT"
readme = "README.md"
repository = "https://github.com/tokio-rs/axum"
[package.metadata.docs.rs]
all-features = true
[package.metadata.playground]
features = ["http1", "http2", "json", "multipart", "ws"]
[package.metadata.cargo_check_external_types]
allowed_external_types = [
# our crates
"axum_core::*",
"axum_macros::*",
# not 1.0
"futures_core::*",
"futures_sink::*",
"futures_util::*",
"tower_layer::*",
"tower_service::*",
# >=1.0
"bytes::*",
"http",
"http::*",
"http_body::*",
"serde_core::*",
"tokio::*",
]
[features]
default = [
"form",
"http1",
"json",
"matched-path",
"original-uri",
"query",
"tokio",
"tower-log",
"tracing",
]
form = ["dep:form_urlencoded", "dep:serde_urlencoded", "dep:serde_path_to_error"]
http1 = ["dep:hyper", "hyper?/http1", "hyper-util?/http1"]
http2 = ["dep:hyper", "hyper?/http2", "hyper-util?/http2"]
json = ["dep:serde_json", "dep:serde_path_to_error"]
macros = ["dep:axum-macros"]
matched-path = []
multipart = ["dep:multer"]
original-uri = []
query = ["dep:form_urlencoded", "dep:serde_urlencoded", "dep:serde_path_to_error"]
tokio = [
"dep:hyper-util",
"dep:tokio",
"tokio/net",
"tokio/rt",
"tower/make",
"tokio/macros",
]
tower-log = ["tower/log"]
tracing = ["dep:tracing", "axum-core/tracing"]
ws = [
"dep:hyper",
"dep:futures-sink",
"tokio",
"dep:tokio-tungstenite",
"dep:sha1",
"dep:base64",
]
__private_docs = [
# We re-export some docs from axum-core via #[doc(inline)],
# but they need the same sort of treatment as below to be complete
"axum-core/__private_docs",
# Enables upstream things linked to in docs
"tower/full",
"dep:serde",
"dep:tower-http",
]
# This feature is used to enable private test helper usage
# in `axum-core` and `axum-extra`.
__private = ["tokio", "http1", "dep:reqwest"]
[dependencies]
axum-core = { path = "../axum-core", version = "0.5.5" }
bytes = "1.7"
futures-core = "0.3"
futures-util = { version = "0.3", default-features = false, features = ["alloc"] }
http = "1.0.0"
http-body = "1.0.0"
http-body-util = "0.1.0"
itoa = "1.0.5"
matchit = "=0.8.4"
memchr = "2.4.1"
mime = "0.3.16"
percent-encoding = "2.1"
pin-project-lite = "0.2.7"
serde_core = "1.0.221"
sync_wrapper = "1.0.0"
tower = { version = "0.5.2", default-features = false, features = ["util"] }
tower-layer = "0.3.2"
tower-service = "0.3"
# optional dependencies
axum-macros = { path = "../axum-macros", version = "0.5.0", optional = true }
base64 = { version = "0.22.1", optional = true }
form_urlencoded = { version = "1.1.0", optional = true }
futures-sink = { version = "0.3", optional = true }
hyper = { version = "1.4.0", optional = true }
hyper-util = { version = "0.1.4", features = ["tokio", "server", "service"], optional = true }
multer = { version = "3.0.0", optional = true }
reqwest = { version = "0.12", optional = true, default-features = false, features = ["json", "stream", "multipart"] }
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.44", features = ["time"], optional = true }
tokio-tungstenite = { version = "0.28.0", optional = true }
tokio-util = "0.7.4"
tracing = { version = "0.1", default-features = false, optional = true }
# doc dependencies
serde = { version = "1.0.211", optional = true }
[dependencies.tower-http]
version = "0.6.0"
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",
]
[dev-dependencies]
anyhow = "1.0"
axum-extra = { path = "../axum-extra", features = ["typed-header"] }
axum-macros = { path = "../axum-macros", features = ["__private"] }
hyper = { version = "1.1.0", features = ["client"] }
quickcheck = "1.0"
quickcheck_macros = "1.0"
reqwest = { version = "0.12", default-features = false, features = ["json", "stream", "multipart"] }
serde = { version = "1.0.221", features = ["derive"] }
serde_json = { version = "1.0", features = ["raw_value"] }
time = { version = "0.3", features = ["serde-human-readable"] }
tokio = { package = "tokio", version = "1.44.2", features = ["macros", "rt", "rt-multi-thread", "net", "test-util"] }
tokio-stream = "0.1"
tokio-tungstenite = "0.28.0"
tracing = "0.1"
tracing-subscriber = { version = "0.3.20", features = ["json"] }
uuid = { version = "1.0", features = ["serde", "v4"] }
[dev-dependencies.tower]
package = "tower"
version = "0.5.2"
features = [
"util",
"timeout",
"limit",
"load-shed",
"steer",
"filter",
]
[dev-dependencies.tower-http]
version = "0.6.0"
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",
]
[lints]
workspace = true
[[bench]]
name = "benches"
harness = false