Skip to content

fix(deps): update rust crate reqwest to 0.13 - #177

Open
Romuald Lemesle (RomuDeuxfois) wants to merge 8 commits into
mainfrom
fix/reqwest-0.13-tls-features
Open

fix(deps): update rust crate reqwest to 0.13#177
Romuald Lemesle (RomuDeuxfois) wants to merge 8 commits into
mainfrom
fix/reqwest-0.13-tls-features

Conversation

@RomuDeuxfois

@RomuDeuxfois Romuald Lemesle (RomuDeuxfois) commented Aug 18, 2026

Copy link
Copy Markdown
Member

reqwest 0.13 dropped the rustls-tls-* feature family — hence the Renovate bump (#102) being red since February: it changed the version, not the features.

 features = [
     "blocking",
-    "rustls-tls",
-    "rustls-tls-native-roots",
+    "rustls",
     "json",
 ]

Cargo.lock regenerated with cargo update -p reqwest: 0.12.28 → 0.13.4, 23 packages added, webpki-roots removed.

Two intended behaviour changes, since rustls expands to aws-lc-rs + platform-verifier where rustls-tls expanded to webpki-roots + ring:

  • crypto provider ring → aws-lc-rs, which adds cmake and a C compiler to the build requirements — the thing to watch in CI, notably windows-arm64
  • trust store bundled Mozilla roots + system store → OS verifier only

Side effect: ring leaves the compiled graph (cargo tree -i ring --target all is empty), though it stays as an inert lock entry that cargo audit still scans.

Not compiled locally — no linker on this machine, and aws-lc-sys now needs cmake too. CI decides.

renovate Bot and others added 2 commits August 18, 2026 17:45
reqwest 0.13 removed the whole rustls-tls-* feature family, which is why
the Renovate bump could not resolve since February. Replace rustls-tls
and rustls-tls-native-roots with rustls.

Two behaviour changes come with that feature, by design:
- crypto provider moves from ring to aws-lc-rs, which adds a cmake and C
  compiler requirement for aws-lc-sys at build time
- roots move from bundled webpki-roots to rustls-platform-verifier, i.e.
  the OS trust store rather than Mozilla roots plus the system store
Copilot AI lite review requested due to automatic review settings August 18, 2026 15:46
@github-actions github-actions Bot added the filigran team Item from the Filigran team. label Aug 18, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the Rust HTTP client dependency (reqwest) to the 0.13.x line by aligning feature flags with the renamed TLS feature, and regenerates the lockfile to restore successful dependency resolution.

Changes:

  • Bump reqwest from 0.12.280.13.0 and switch TLS feature flags to rustls.
  • Regenerate Cargo.lock to resolve reqwest to 0.13.4 and reflect the new transitive dependency graph (notably aws-lc-*, rustls-platform-verifier, etc.).

Reviewed changes

Copilot reviewed 1 out of 2 changed files in this pull request and generated no comments.

File Description
Cargo.toml Updates reqwest version and replaces removed rustls-tls-* features with rustls.
Cargo.lock Regenerates the lockfile for the new reqwest resolution and updated transitive dependencies.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@RomuDeuxfois
Romuald Lemesle (RomuDeuxfois) marked this pull request as draft August 18, 2026 16:08
reqwest 0.13's `rustls` verifies against the OS trust store only, where
0.12's rustls-tls + rustls-tls-native-roots also trusted the bundled
Mozilla roots. Passing those roots through add_root_certificate puts
reqwest on Verifier::new_with_extra_roots, i.e. OS store plus bundled
roots, so the dependency bump stays behaviour-neutral. Narrowing the
trust policy is left to the migrate-out-of-ring work.

Also add the symmetric TLS test: the existing one only asserts that an
invalid certificate is rejected, which a broken root store satisfies too,
so nothing currently fails if public CAs stop resolving.
@codecov

codecov Bot commented Aug 18, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 18.24%. Comparing base (05b8cca) to head (46dd361).
⚠️ Report is 5 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #177      +/-   ##
==========================================
+ Coverage   17.90%   18.24%   +0.33%     
==========================================
  Files          16       16              
  Lines         966      970       +4     
==========================================
+ Hits          173      177       +4     
  Misses        793      793              
Flag Coverage Δ
implant 18.24% <100.00%> (+0.33%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
src/api/mod.rs 100.00% <100.00%> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Ports the job proven green on the agent repo: generates a private CA,
installs it into the system trust store of each host OS, serves a
certificate signed by it with openssl s_server, then runs an #[ignore]d
test against that endpoint. No bundled Mozilla root can vouch for the
chain, so a pass is evidence that rustls-platform-verifier really reads
the store.

Host targets only (gnu on Linux rather than the musl release target),
since the test has to actually run.
@RomuDeuxfois
Romuald Lemesle (RomuDeuxfois) marked this pull request as ready for review August 28, 2026 15:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

filigran team Item from the Filigran team.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants