[package] name = "axum-test" authors = ["Joseph Lenton "] version = "17.3.0" rust-version = "1.83" 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.8.3", features = [] } anyhow = "1.0" bytes = "1.10" bytesize = "2.0" cookie = "0.18" http = "1.3" http-body-util = "0.1" hyper-util = { version = "0.1", features = ["client", "http1", "client-legacy"] } hyper = { version = "1.6", features = ["http1"] } mime = "0.3" rust-multipart-rfc7578_2 = "0.8" reserve-port = "2.2" serde = { version = "1.0" } serde_json = "1.0" serde_urlencoded = "0.7" smallvec = "1.13" tokio = { version = "1.43", features = ["rt"] } tower = { version = "0.5", features = ["util", "make"] } url = "2.5" # Pretty Assertions pretty_assertions = { version = "1.4", optional = true } # Yaml serde_yaml = { version = "0.9", optional = true } # Shuttle shuttle-axum = { version = "0.53", optional = true } # MsgPack rmp-serde = { version = "1.3", optional = true } # Typed Routing axum-extra = { version = "0.10", features = ["typed-routing"], optional = true } # WebSockets uuid = { version = "1.12", optional = true, features = ["v4"]} base64 = { version = "0.22", optional = true } futures-util = { version = "0.3", optional = true } tokio-tungstenite = { version = "0.26", optional = true } # Reqwest reqwest = { version = "0.12", optional = true, features = ["cookies", "json", "stream", "multipart", "rustls-tls"] } [dev-dependencies] axum = { version = "0.8", features = ["multipart", "tokio", "ws"] } axum-extra = { version = "0.10", features = ["cookie", "typed-routing", "query"] } axum-msgpack = "0.5" axum-yaml = "0.5" futures-util = "0.3" local-ip-address = "0.6" rand = { version = "0.9", features = ["small_rng"] } regex = "1.11" serde-email = { version = "3.1", features = ["serde"] } shuttle-axum = "0.53" shuttle-runtime = "0.53" tokio = { version = "1.43", features = ["rt", "rt-multi-thread", "sync", "time", "macros"] } tower-http = { version = "0.6", features = ["normalize-path"] }