[package]
edition = "2024"
rust-version = "1.97.1"
name = "s3-wire"
version = "0.3.1"
build = false
include = [
"/src/**",
"/benches/**",
"/comparisons/size/REPORT.md",
"/comparisons/size/results.json",
"/docs/**",
"/examples/**",
"/measurements/**",
"/tests/**",
"/adapters/object-store/README.md",
"/CHANGELOG.md",
"/CODE_OF_CONDUCT.md",
"/CONTRIBUTING.md",
"/Cargo.toml",
"/SECURITY.md",
"/SUPPORT.md",
"/ROADMAP.md",
"/README.md",
"/LICENSE",
"/deny.toml",
"/rust-toolchain.toml",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "An async, streaming S3-compatible client for Rust"
homepage = "https://github.com/runtrue/s3-rs"
documentation = "https://docs.rs/s3-wire"
readme = "README.md"
keywords = [
"s3",
"s3-rs",
"object-storage",
"aws",
"minio",
]
categories = [
"api-bindings",
"asynchronous",
"network-programming",
]
license = "Apache-2.0"
repository = "https://github.com/runtrue/s3-rs"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
"-D",
"warnings",
]
[features]
aws-compat = []
aws-credentials = [
"dep:aws-config",
"dep:aws-credential-types",
]
default = []
fuzzing = []
http2 = [
"hyper/http2",
"hyper-rustls/http2",
"hyper-util/http2",
]
[lib]
name = "s3_wire"
path = "src/lib.rs"
[[example]]
name = "artifact_store"
path = "examples/artifact_store.rs"
[[example]]
name = "basic"
path = "examples/basic.rs"
[[example]]
name = "copy_and_delete"
path = "examples/copy_and_delete.rs"
[[example]]
name = "download_file"
path = "examples/download_file.rs"
[[example]]
name = "multipart_upload"
path = "examples/multipart_upload.rs"
[[example]]
name = "presign"
path = "examples/presign.rs"
[[example]]
name = "stream_upload"
path = "examples/stream_upload.rs"
[[test]]
name = "aws_compat"
path = "tests/aws_compat.rs"
[[test]]
name = "mock_client"
path = "tests/mock_client.rs"
[[test]]
name = "properties"
path = "tests/properties.rs"
[[test]]
name = "s3_compat"
path = "tests/s3_compat.rs"
[[bench]]
name = "validation"
path = "benches/validation.rs"
harness = false
required-features = ["fuzzing"]
[dependencies.async-trait]
version = "0.1.91"
[dependencies.aws-config]
version = "1.10.0"
features = [
"behavior-version-latest",
"credentials-process",
"default-https-client",
"rt-tokio",
]
optional = true
default-features = false
[dependencies.aws-credential-types]
version = "1.3.0"
optional = true
[dependencies.base64]
version = "0.23.1"
[dependencies.bytes]
version = "1.12.1"
[dependencies.derive_more]
version = "2.1.1"
features = ["debug"]
default-features = false
[dependencies.fastrand]
version = "2.5.0"
[dependencies.futures-core]
version = "0.3.33"
[dependencies.futures-util]
version = "0.3.33"
features = [
"std",
"async-await",
]
default-features = false
[dependencies.hmac]
version = "0.13.0"
[dependencies.http]
version = "1.4.2"
[dependencies.http-body-util]
version = "0.1.3"
[dependencies.httpdate]
version = "1.0.3"
[dependencies.hyper]
version = "1.8.1"
features = [
"client",
"http1",
]
[dependencies.hyper-rustls]
version = "0.27.7"
features = [
"http1",
"ring",
"tls12",
"webpki-roots",
]
default-features = false
[dependencies.hyper-util]
version = "0.1.19"
features = [
"client",
"client-legacy",
"http1",
"tokio",
]
[dependencies.md-5]
version = "0.11.0"
[dependencies.quick-xml]
version = "0.42.0"
features = ["serialize"]
[dependencies.rustls]
version = "0.23.42"
features = [
"ring",
"std",
"tls12",
]
default-features = false
[dependencies.secrecy]
version = "0.10.3"
[dependencies.serde]
version = "1.0.229"
features = ["derive"]
[dependencies.sha2]
version = "0.11.0"
[dependencies.tempfile]
version = "3.27.0"
[dependencies.thiserror]
version = "2.0.19"
[dependencies.time]
version = "0.3.54"
features = [
"formatting",
"macros",
"parsing",
]
[dependencies.tokio]
version = "1.53.1"
features = [
"fs",
"io-util",
"macros",
"rt",
"sync",
"time",
]
[dependencies.tokio-util]
version = "0.7.18"
features = ["io"]
default-features = false
[dependencies.zeroize]
version = "1.9.0"
[dev-dependencies.criterion]
version = "0.8.2"
features = ["html_reports"]
[dev-dependencies.proptest]
version = "1.11.0"
[dev-dependencies.subtle]
version = "2.6.1"
[dev-dependencies.tokio]
version = "1.53.1"
features = [
"fs",
"io-util",
"macros",
"net",
"rt-multi-thread",
"sync",
"test-util",
"time",
]
[lints.clippy]
module_name_repetitions = "allow"
must_use_candidate = "allow"
[lints.clippy.all]
level = "deny"
priority = -1
[lints.clippy.pedantic]
level = "allow"
priority = -1
[lints.rust]
missing_docs = "deny"
unsafe_code = "forbid"
[profile.release]
lto = "thin"
codegen-units = 1
strip = "symbols"