[package]
name = "testcontainers"
version = "0.26.3"
categories = ["development-tools::testing"]
readme = "README.md"
authors.workspace = true
edition.workspace = true
keywords.workspace = true
license.workspace = true
repository.workspace = true
rust-version.workspace = true
description = "A library for integration-testing against docker containers from within Rust."
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[dependencies]
async-trait = { version = "0.1" }
bollard = { version = "0.19.4", features = ["buildkit_providerless"] }
bytes = "1.6.0"
conquer-once = { version = "0.4", optional = true }
docker-compose-types = { version = "0.22", optional = true }
docker_credential = "1.3.1"
either = "1.12.0"
etcetera = "0.11.0"
futures = "0.3"
itertools = "0.14"
log = "0.4"
memchr = "2.7.2"
parse-display = "0.9.0"
pin-project-lite = "0.2.14"
russh = { version = "0.55.0", default-features = false, optional = true }
reqwest = { version = "0.12.5", features = [
"json",
"charset",
"http2",
], default-features = false, optional = true }
serde = { version = "1", features = ["derive"] }
serde-java-properties = { version = "0.2.0", optional = true }
serde_json = "1"
serde_with = "3.7.0"
signal-hook = { version = "0.3", optional = true }
thiserror = "2.0.3"
tokio = { version = "1", features = ["macros", "fs", "rt-multi-thread", "process"] }
tokio-stream = "0.1.15"
astral-tokio-tar = "0.5.6"
tokio-util = { version = "0.7.10", features = ["io"] }
ferroid = { version = "0.8.7", features = ["std", "ulid", "base32"] }
url = { version = "2", features = ["serde"] }
uuid = { version = "1.8.0", features = ["v4"], optional = true }
[features]
default = ["ring"]
ring = ["bollard/ssl"]
aws-lc-rs = ["bollard/aws-lc-rs"]
ssl = ["bollard/ssl_providerless"]
blocking = []
watchdog = ["signal-hook", "conquer-once"]
http_wait = ["http_wait_plain", "reqwest/rustls-tls", "reqwest/rustls-tls-native-roots"]
http_wait_plain = ["reqwest"]
properties-config = ["serde-java-properties"]
reusable-containers = []
device-requests = []
host-port-exposure = ["dep:russh", "russh/ring"]
docker-compose = ["dep:docker-compose-types", "dep:uuid"]
[dev-dependencies]
anyhow = "1.0.86"
pretty_env_logger = "0.5"
reqwest = { version = "0.12.4", features = [
"blocking",
], default-features = false }
temp-dir = "0.1"
tempfile = "3.20"
tokio = { version = "1", features = ["macros"] }