docker-wrapper 0.10.2

A Docker CLI wrapper for Rust
Documentation
[workspace]
resolver = "2"

[package]
name = "docker-wrapper"
version = "0.10.2"
edition = "2021"
rust-version = "1.89.0"
authors = ["Josh Rotenberg <joshrotenberg@gmail.com>"]
description = "A Docker CLI wrapper for Rust"
license = "MIT OR Apache-2.0"
repository = "https://github.com/joshrotenberg/docker-wrapper"
readme = "README.md"
keywords = ["docker", "containers", "cli", "wrapper"]
categories = ["development-tools", "api-bindings"]
homepage = "https://github.com/joshrotenberg/docker-wrapper"
documentation = "https://docs.rs/docker-wrapper"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[features]
default = ["compose", "swarm", "manifest"]
compose = []
swarm = []
manifest = []

# Template features
templates = [
    "template-redis",
    "template-redis-cluster",
    "template-redis-enterprise",
    "template-postgres",
    "template-mysql",
    "template-mongodb",
    "template-nginx",
]

# Individual template features
template-redis = ["reqwest"]
template-redis-enterprise = ["reqwest"]
template-redis-cluster = ["reqwest"]
template-postgres = ["reqwest"]
template-mysql = ["reqwest"]
template-mongodb = ["reqwest"]
template-nginx = ["reqwest"]

# Future Redis variants
template-redis-sentinel = ["template-redis"]
template-redis-stack = ["template-redis"]

# Testing utilities (requires at least one template feature)
testing = ["template-redis"]

[dependencies]
tokio = { version = "1.46", features = [
    "process",
    "rt-multi-thread",
    "macros",
    "time",
    "io-util",
    "sync",
    "net",
] }
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
thiserror = "2.0"
tracing = "0.1"
async-trait = "0.1"

# Optional dependencies for templates
reqwest = { version = "0.12", features = ["json", "rustls-tls"], optional = true }

# Cross-platform binary lookup
which = "8.0"

[dev-dependencies]
tokio-test = "0.4"
tracing-subscriber = "0.3"
uuid = { version = "1.0", features = ["v4"] }
futures = "0.3"
tempfile = "3.0"
which = "8.0"
serde_json = "1.0"
proptest = "1.6"
serial_test = "3.3.1"

[[example]]
name = "basic_usage"
path = "examples/basic_usage.rs"

[[example]]
name = "exec_examples"
path = "examples/exec_examples.rs"

[[example]]
name = "basic_docker_patterns"
path = "examples/basic_docker_patterns.rs"

[[example]]
name = "network_volume_management"
path = "examples/network_volume_management.rs"

[[example]]
name = "template_usage"
path = "examples/template_usage.rs"
required-features = ["templates"]

[[example]]
name = "redis_cluster"
path = "examples/redis_cluster.rs"
required-features = ["template-redis-cluster"]

[[example]]
name = "redis_enterprise_template"
path = "examples/redis_enterprise_template.rs"
required-features = ["template-redis-enterprise"]

[[example]]
name = "test_sentinel"
path = "examples/test_sentinel.rs"
required-features = ["template-redis"]