[package]
name = "s3"
version = "0.1.21"
description = "A lean, modern, unofficial S3-compatible client for Rust."
readme = "README.md"
repository = "https://github.com/lvillis/s3-rs"
homepage = "https://github.com/lvillis/s3-rs"
documentation = "https://docs.rs/s3"
keywords = ["s3", "object-storage", "aws", "minio", "sigv4"]
categories = ["api-bindings", "web-programming::http-client"]
edition = "2024"
rust-version = "1.94"
license = "MIT"
include = [
"Cargo.toml",
"README.md",
"LICENSE",
"CHANGELOG.md",
"src/**",
"benches/**",
"examples/**",
"tests/**"
]
[dependencies]
bytes = { version = "1.11.1", default-features = false, features = ["std"] }
http = { version = "1.4.0", default-features = false, features = ["std"] }
httpdate = { version = "1.0.3", default-features = false }
time = { version = "0.3.47", default-features = false, features = ["std", "parsing"] }
url = { version = "2.5.8", default-features = false, features = ["std"] }
base64 = { version = "0.22.1", default-features = false, features = ["std"] }
hex = { version = "0.4.3", default-features = false, features = ["std"] }
hmac = { version = "0.12.1", default-features = false, features = ["std"] }
md-5 = { version = "0.10.6", default-features = false, features = ["std"] }
sha2 = { version = "0.10.9", default-features = false, features = ["std"] }
reqx = { version = "0.1.26", default-features = false, optional = true }
http-body-util = { version = "0.1.3", default-features = false, optional = true }
quick-xml = { version = "0.39.2", default-features = false, features = ["serialize"] }
serde = { version = "1.0.228", default-features = false, features = ["derive", "std"] }
serde_json = { version = "1.0.149", default-features = false, features = ["std"], optional = true }
futures-core = { version = "0.3.32", default-features = false, features = ["std"], optional = true }
futures-io = { version = "0.3.32", default-features = false, features = ["std"], optional = true }
futures-util = { version = "0.3.32", default-features = false, features = ["std", "io"], optional = true }
tokio = { version = "1.50.0", default-features = false, features = ["time", "sync", "io-util"], optional = true }
crc = { version = "3.4.0", default-features = false, optional = true }
sha1 = { version = "0.10.6", default-features = false, features = ["std"], optional = true }
metrics = { version = "0.24.3", default-features = false, optional = true }
tracing = { version = "0.1.44", default-features = false, features = ["std"], optional = true }
[dev-dependencies]
criterion = { version = "0.8.2" }
reqwest = { version = "0.13.2", default-features = false, features = ["stream"] }
tokio = { version = "1.50.0", default-features = false, features = ["macros", "rt-multi-thread", "time", "io-util"] }
ureq = { version = "3.2.0", default-features = false }
[features]
default = ["async", "rustls"]
async = [
"dep:reqx",
"dep:futures-core",
"dep:futures-io",
"dep:futures-util",
"dep:tokio",
"dep:http-body-util",
]
blocking = ["dep:reqx"]
tracing = ["dep:tracing"]
metrics = ["dep:metrics"]
checksums = ["dep:crc", "dep:sha1"]
multipart = []
providers = []
credentials-profile = []
credentials-imds = ["dep:serde_json"]
credentials-sts = []
rustls = [
"reqx?/async-tls-rustls-ring",
"reqx?/blocking-tls-rustls-ring",
]
native-tls = ["reqx?/async-tls-native", "reqx?/blocking-tls-native"]
allow-both-tls = []
unstable-raw = []
[[bench]]
name = "bench"
harness = false
[package.metadata.release]
tag-prefix = ""
tag-name = "{{prefix}}{{version}}"
pre-release-commit-message = "chore: release {{crate_name}} version {{version}}"
tag-message = "chore: release {{crate_name}} version {{version}}"
pre-release-hook = ["git", "cliff", "-o", "CHANGELOG.md", "--tag", "{{version}}"]