~/talk

From Simple to PubGrub: The Evolution of Cargo's Resolver

Talkat RustWeek 2025 · 2025-05-13..05-17· [rust]
slides:none on file

Cargo’s resolver starts as a naive recursive backtracker that clones big state, blows the stack on dozens of deps and does exponential work (20+ needless steps) until conflict clauses are added to record why versions fail. That yields thousands of randomized tests and a SAT-based verifier, but complexity and fragility remain, so Cargo is migrating to PubGrub RS, a max-style incompatibility solver already used by Gleam and UV; it works functionally while performance and precise semantics are still being tuned.

AI-written summary · about

  1. 0:00Introduction
  2. 1:31Dependency resolver basics
  3. 2:57First resolver in 2013
  4. 7:08Recursive resolver problems
  5. 9:55Resolver rewrite with stack
  6. 12:22Exponential work and errors
  7. 14:47Conflict clauses for failures
  8. 17:38Complexity and testing
  9. 19:21Learning from SAT solvers
  10. 21:50PubGrub incompatibility model
  11. 23:37PubGrub adoption
  12. 25:02Resolver future
  13. 25:28Q&A: Feature flags
  14. 27:13Q&A: SAT solver performance
  15. 28:40Q&A: Error messages
  16. 30:06Q&A: Why PubGrub
  17. 31:10Q&A: Correctness standards
  18. 32:39Q&A: Dual-resolver testing
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.