[package] name = "s3-storage" version = "0.1.1" edition = "2024" license = "MIT" # Internal shared crate, consumed by path inside this repo and never published. # `publish = false` is what makes that a cargo-enforced fact rather than a # convention: without it an accidental `cargo publish` is one command away. publish = false [dependencies] # No `default-https-client` on either: in aws-smithy-runtime that feature is a # hard alias for `rustls-aws-lc`, so it pins a C crypto backend with no way to # ask for another. The HTTP client is built explicitly in `http_client()` below # with the ring provider instead. aws-config is here only for `BehaviorVersion`; # credentials are always passed in, so its provider-chain defaults are unused. aws-sdk-s3 = { version = "1.131", default-features = false, features = ["sigv4a", "http-1x", "rt-tokio"] } aws-config = { version = "1.8", default-features = false, features = ["behavior-version-latest"] } aws-smithy-http-client = { version = "1.1", features = ["rustls-ring"] } bytes = "1" # `time` is what the retry loops sleep on. It compiled without it because an # aws crate happens to enable the feature, and a feature you get by unification # is one you lose when a dependency changes its mind. tokio = { version = "1", features = ["fs", "io-util", "time"] } tracing = "0.1" [dev-dependencies] tokio = { version = "1", features = ["macros", "rt", "time"] } [lints.rust] unused = "warn" unreachable_pub = "warn" [lints.clippy] pedantic = { level = "warn", priority = -1 } # Allow-list tuned from a measured breakdown across server/multithreaded/pter # (2026-07-22). These are the high-churn / low-signal pedantic lints; everything # else in `pedantic` stays a warning. Keep this block identical across repos. module_name_repetitions = "allow" # Doc lints. No docs-completeness push is underway. missing_errors_doc = "allow" missing_panics_doc = "allow" doc_markdown = "allow" # Numeric casts. Endemic and mostly intentional in size and byte math. cast_possible_truncation = "allow" cast_sign_loss = "allow" cast_precision_loss = "allow" cast_possible_wrap = "allow" cast_lossless = "allow" # Subjective structure and style nags. High churn, low signal. must_use_candidate = "allow" too_many_lines = "allow" struct_excessive_bools = "allow" similar_names = "allow" items_after_statements = "allow" single_match_else = "allow" # Frequent false-positives in TUI and router-heavy code. match_same_arms = "allow" unnecessary_wraps = "allow" type_complexity = "allow"