s3 0.1.5

A lean, modern, unofficial S3-compatible client for Rust.
Documentation
[[bench]]
harness = false
name = "bench"
path = "benches/bench.rs"

[dependencies.base64]
default-features = false
features = ["std"]
version = "0.22.1"

[dependencies.bytes]
default-features = false
features = ["std"]
version = "1.11.0"

[dependencies.crc]
default-features = false
optional = true
version = "3.4.0"

[dependencies.futures-core]
default-features = false
features = ["std"]
optional = true
version = "0.3.31"

[dependencies.futures-io]
default-features = false
features = ["std"]
optional = true
version = "0.3.31"

[dependencies.futures-util]
default-features = false
features = ["std", "io"]
optional = true
version = "0.3.31"

[dependencies.hex]
default-features = false
features = ["std"]
version = "0.4.3"

[dependencies.hmac]
default-features = false
features = ["std"]
version = "0.12.1"

[dependencies.http]
default-features = false
features = ["std"]
version = "1.4.0"

[dependencies.http-body]
default-features = false
optional = true
version = "1.0.1"

[dependencies.md-5]
default-features = false
features = ["std"]
version = "0.10.6"

[dependencies.metrics]
default-features = false
optional = true
version = "0.24.3"

[dependencies.quick-xml]
default-features = false
features = ["serialize"]
version = "0.38.4"

[dependencies.reqwest]
default-features = false
features = ["stream"]
optional = true
version = "0.13.1"

[dependencies.rustls]
default-features = false
features = ["std", "tls12", "ring"]
optional = true
version = "0.23.36"

[dependencies.serde]
default-features = false
features = ["derive", "std"]
version = "1.0.228"

[dependencies.serde_json]
default-features = false
features = ["std"]
optional = true
version = "1.0.148"

[dependencies.sha1]
default-features = false
features = ["std"]
optional = true
version = "0.10.6"

[dependencies.sha2]
default-features = false
features = ["std"]
version = "0.10.8"

[dependencies.time]
default-features = false
features = ["std", "parsing"]
version = "0.3.44"

[dependencies.tokio]
default-features = false
features = ["time", "sync"]
optional = true
version = "1.49.0"

[dependencies.tracing]
default-features = false
features = ["std"]
optional = true
version = "0.1.44"

[dependencies.ureq]
default-features = false
optional = true
version = "3.1.4"

[dependencies.url]
default-features = false
features = ["std"]
version = "2.5.8"

[dev-dependencies.criterion]
version = "0.8.1"

[dev-dependencies.tokio]
default-features = false
features = ["time", "sync", "macros", "rt-multi-thread", "time"]
version = "1.49.0"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[features]
async = ["dep:reqwest", "dep:futures-core", "dep:futures-io", "dep:futures-util", "dep:tokio", "dep:http-body"]
blocking = ["dep:ureq"]
checksums = ["dep:crc", "dep:sha1"]
credentials-imds = ["dep:serde_json"]
credentials-profile = []
credentials-sts = []
default = ["async", "rustls"]
metrics = ["dep:metrics"]
multipart = []
native-tls = ["reqwest?/native-tls", "ureq?/native-tls"]
providers = []
rustls = ["dep:rustls", "reqwest?/rustls-no-provider", "ureq?/rustls-no-provider", "ureq?/platform-verifier"]
tracing = ["dep:tracing"]
unstable-raw = []

[lib]
name = "s3"
path = "src/lib.rs"

[package]
autobenches = false
autobins = false
autoexamples = false
autolib = false
autotests = false
build = false
categories = ["api-bindings", "web-programming::http-client"]
description = "A lean, modern, unofficial S3-compatible client for Rust."
documentation = "https://docs.rs/s3"
edition = "2024"
homepage = "https://github.com/lvillis/s3-rs"
include = ["Cargo.toml", "README.md", "LICENSE", "CHANGELOG.md", "src/**", "benches/**", "examples/**", "tests/**"]
keywords = ["s3", "object-storage", "aws", "minio", "sigv4"]
license = "MIT"
name = "s3"
readme = "README.md"
repository = "https://github.com/lvillis/s3-rs"
rust-version = "1.92"
version = "0.1.5"

[package.metadata.release]
pre-release-commit-message = "chore: release {{crate_name}} version {{version}}"
pre-release-hook = ["git", "cliff", "-o", "CHANGELOG.md", "--tag", "{{version}}"]
tag-message = "chore: release {{crate_name}} version {{version}}"
tag-name = "{{prefix}}{{version}}"
tag-prefix = ""

[[test]]
name = "s3_compat_async"
path = "tests/s3_compat_async.rs"

[[test]]
name = "s3_compat_blocking"
path = "tests/s3_compat_blocking.rs"