Skip to main content

max / makenotwork

2.9 KB · 69 lines History Blame Raw
1 [package]
2 name = "s3-storage"
3 version = "0.1.2"
4 edition = "2024"
5 license = "MIT"
6 # Internal shared crate, consumed by path inside this repo and never published.
7 # `publish = false` is what makes that a cargo-enforced fact rather than a
8 # convention: without it an accidental `cargo publish` is one command away.
9 publish = false
10
11 [dependencies]
12 # No `default-https-client` on either: in aws-smithy-runtime that feature is a
13 # hard alias for `rustls-aws-lc`, so it pins a C crypto backend with no way to
14 # ask for another. The HTTP client is built explicitly in `http_client()` below
15 # with the ring provider instead. aws-config is here only for `BehaviorVersion`;
16 # credentials are always passed in, so its provider-chain defaults are unused.
17 aws-sdk-s3 = { version = "1.131", default-features = false, features = ["sigv4a", "http-1x", "rt-tokio"] }
18 aws-config = { version = "1.8", default-features = false, features = ["behavior-version-latest"] }
19 aws-smithy-http-client = { version = "1.1", features = ["rustls-ring"] }
20 bytes = "1"
21 # `time` is what the retry loops sleep on. It compiled without it because an
22 # aws crate happens to enable the feature, and a feature you get by unification
23 # is one you lose when a dependency changes its mind.
24 tokio = { version = "1", features = ["fs", "io-util", "time"] }
25 tracing = "0.1"
26
27 [dev-dependencies]
28 tokio = { version = "1", features = ["macros", "rt", "time"] }
29 # The replay client, for the two paths a live MinIO cannot reach: a response
30 # shape S3 does not currently produce (the truncated-without-markers guard), and
31 # a setting the object store offers no way to read back under the test bucket's
32 # credentials. Same crate as the runtime dependency above; cargo unifies the
33 # features, so this only adds `test-util` to the test build.
34 aws-smithy-http-client = { version = "1.1", features = ["test-util"] }
35 aws-smithy-types = "1.4"
36 http = "1"
37
38 [lints.rust]
39 unused = "warn"
40 unreachable_pub = "warn"
41
42 [lints.clippy]
43 pedantic = { level = "warn", priority = -1 }
44 # Allow-list tuned from a measured breakdown across server/multithreaded/pter
45 # (2026-07-22). These are the high-churn / low-signal pedantic lints; everything
46 # else in `pedantic` stays a warning. Keep this block identical across repos.
47 module_name_repetitions = "allow"
48 # Doc lints. No docs-completeness push is underway.
49 missing_errors_doc = "allow"
50 missing_panics_doc = "allow"
51 doc_markdown = "allow"
52 # Numeric casts. Endemic and mostly intentional in size and byte math.
53 cast_possible_truncation = "allow"
54 cast_sign_loss = "allow"
55 cast_precision_loss = "allow"
56 cast_possible_wrap = "allow"
57 cast_lossless = "allow"
58 # Subjective structure and style nags. High churn, low signal.
59 must_use_candidate = "allow"
60 too_many_lines = "allow"
61 struct_excessive_bools = "allow"
62 similar_names = "allow"
63 items_after_statements = "allow"
64 single_match_else = "allow"
65 # Frequent false-positives in TUI and router-heavy code.
66 match_same_arms = "allow"
67 unnecessary_wraps = "allow"
68 type_complexity = "allow"
69