[package]
name = "axum-test"
authors = ["Joseph Lenton <josephlenton@gmail.com>"]
version = "16.4.0"
rust-version = "1.75"
edition = "2021"
license = "MIT"
description = "For spinning up and testing Axum servers"
keywords = ["testing", "test", "axum"]
categories = ["web-programming::http-server", "development-tools::testing"]
repository = "https://github.com/JosephLenton/axum-test"
documentation = "https://docs.rs/axum-test"
readme = "README.md"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[[example]]
name = "example-shuttle"
path = "examples/example-shuttle/main.rs"
required-features = ["shuttle"]
[[example]]
name = "example-websocket-chat"
path = "examples/example-websocket-chat/main.rs"
required-features = ["ws"]
[[example]]
name = "example-websocket-ping-pong"
path = "examples/example-websocket-ping-pong/main.rs"
required-features = ["ws"]
[features]
default = ["pretty-assertions"]
all = ["pretty-assertions", "yaml", "msgpack", "reqwest", "shuttle", "typed-routing", "ws"]
pretty-assertions = ["dep:pretty_assertions"]
yaml = ["dep:serde_yaml"]
msgpack = ["dep:rmp-serde"]
shuttle = ["dep:shuttle-axum"]
typed-routing = ["dep:axum-extra"]
ws = ["axum/ws", "tokio/time", "dep:uuid", "dep:base64", "dep:tokio-tungstenite", "dep:futures-util"]
reqwest = ["dep:reqwest"]
[dependencies]
auto-future = "1.0"
assert-json-diff = "2.0"
axum = { version = "0.7.7", features = [] }
anyhow = "1.0"
bytes = "1.8"
bytesize = "1.3.0"
cookie = "0.18"
http = "1.1"
http-body-util = "0.1"
hyper-util = { version = "0.1", features = ["client", "http1", "client-legacy"] }
hyper = { version = "1.5", features = ["http1"] }
mime = "0.3"
rust-multipart-rfc7578_2 = "0.6"
reserve-port = "2.0"
serde = { version = "1.0" }
serde_json = "1.0"
serde_urlencoded = "0.7"
smallvec = "1.13"
tokio = { version = "1.41", features = ["rt"] }
tower = { version = "0.5", features = ["util", "make"] }
url = "2.5"
pretty_assertions = { version = "1.4", optional = true }
serde_yaml = { version = "0.9", optional = true }
shuttle-axum = { version = "0.49", optional = true }
rmp-serde = { version = "1.3", optional = true }
axum-extra = { version = "0.9", features = ["typed-routing"], optional = true }
uuid = { version = "1.11", optional = true, features = ["v4"]}
base64 = { version = "0.22", optional = true }
futures-util = { version = "0.3", optional = true }
tokio-tungstenite = { version = "0.24", optional = true }
reqwest = { version = "0.12", optional = true, features = ["cookies", "json", "stream", "multipart", "rustls-tls"] }
[dev-dependencies]
async-trait = "0.1"
axum = { version = "0.7", features = ["multipart", "tokio", "ws"] }
axum-extra = { version = "0.9", features = ["cookie", "typed-routing", "query"] }
axum-msgpack = "0.4"
axum-yaml = "0.4"
futures-util = "0.3"
local-ip-address = "0.6"
regex = "1.11"
serde-email = { version = "3.1", features = ["serde"] }
shuttle-axum = "0.49"
shuttle-runtime = "0.49"
tokio = { version = "1.41", features = ["rt", "rt-multi-thread", "sync", "time", "macros"] }
tower-http = { version = "0.6", features = ["normalize-path"] }