[package]
edition = "2024"
rust-version = "1.85"
name = "rusty-s3"
version = "0.10.2"
authors = [
"Paolo Barbolini <paolo@paolo565.org>",
"Federico Guerinoni <guerinoni.federico@gmail.com>",
]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Simple pure Rust AWS S3 Client following a Sans-IO approach"
documentation = "https://docs.rs/rusty-s3"
readme = "README.md"
keywords = [
"aws",
"s3",
"minio",
]
categories = [
"web-programming",
"api-bindings",
]
license = "BSD-2-Clause"
repository = "https://github.com/paolobarbolini/rusty-s3"
[features]
aws-lc-rs = ["dep:aws-lc-rs"]
default = [
"rustcrypto",
"full",
]
full = [
"xml",
"dep:base64",
"dep:md-5",
"dep:serde",
"dep:serde_json",
"jiff/serde",
]
graviola = ["dep:graviola"]
rustcrypto = [
"dep:hmac",
"dep:sha2",
]
wasm_bindgen = ["jiff/js"]
xml = ["dep:instant-xml"]
[lib]
name = "rusty_s3"
path = "src/lib.rs"
[[example]]
name = "create_bucket"
path = "examples/create_bucket.rs"
[[example]]
name = "list_objects"
path = "examples/list_objects.rs"
required-features = ["full"]
[[example]]
name = "multipart_upload"
path = "examples/multipart_upload.rs"
required-features = ["xml"]
[[example]]
name = "sign_get"
path = "examples/sign_get.rs"
[[example]]
name = "sign_put"
path = "examples/sign_put.rs"
[[test]]
name = "common"
path = "tests/common.rs"
[[test]]
name = "create_delete_bucket"
path = "tests/create_delete_bucket.rs"
[[test]]
name = "delete_objects"
path = "tests/delete_objects.rs"
required-features = ["full"]
[[test]]
name = "list_parts"
path = "tests/list_parts.rs"
required-features = ["xml"]
[[test]]
name = "upload_download"
path = "tests/upload_download.rs"
required-features = ["full"]
[[bench]]
name = "actions"
path = "benches/actions.rs"
harness = false
[dependencies.aws-lc-rs]
version = "1.17"
optional = true
[dependencies.base64]
version = "0.23"
optional = true
[dependencies.graviola]
version = "0.4"
optional = true
[dependencies.hmac]
version = "0.13"
optional = true
[dependencies.instant-xml]
version = "0.7"
optional = true
[dependencies.jiff]
version = "0.2"
features = ["std"]
default-features = false
[dependencies.md-5]
version = "0.11"
optional = true
[dependencies.percent-encoding]
version = "2.1.0"
[dependencies.serde]
version = "1"
features = ["derive"]
optional = true
[dependencies.serde_json]
version = "1"
optional = true
[dependencies.sha2]
version = "0.11"
optional = true
[dependencies.url]
version = "2.2.0"
[dependencies.zeroize]
version = "1"
[dev-dependencies.criterion]
version = "0.7"
[dev-dependencies.getrandom]
version = "0.4"
[dev-dependencies.hex]
version = "0.4"
[dev-dependencies.pretty_assertions]
version = "1"
[dev-dependencies.reqwest]
version = "0.13"
[dev-dependencies.tokio]
version = "1.0.1"
features = [
"macros",
"fs",
"rt-multi-thread",
]
[lints.clippy]
redundant_pub_crate = "allow"
ref_patterns = "warn"
unused_trait_names = "warn"
[lints.clippy.complexity]
level = "warn"
priority = -1
[lints.clippy.correctness]
level = "warn"
priority = -1
[lints.clippy.nursery]
level = "warn"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.clippy.perf]
level = "warn"
priority = -1
[lints.clippy.style]
level = "warn"
priority = -1
[lints.clippy.suspicious]
level = "warn"
priority = -1
[lints.rust]
unreachable_pub = "warn"