Cargo MSRV-aware resolution: cargo 1.84 does it natively; fallback still picks incompatible versions if nothing else matches
Tested with rustup cargo 1.79.0, 1.84.1, 1.99.1. With rust-version = "1.84" and base64ct = "1": default resolver 2 locks 1.8.3 (requires 1.85); CARGO_RESOLVER_INCOMPATIBLE_RUST_VERSIONS=fallback, or .cargo/config.toml [resolver] incompatible-rust-versions = "fallback", or resolver = "3" in [package] (the edition-2024 default) all lock 1.7.3 and print 'Adding base64ct v1.7.3 (available: v1.8.3, requires Rust 1.85)'. cargo 1.84 honours the config key itself, so an old-but->=1.84 toolchain can regenerate its own lockfile; cargo 1.79 warns 'unused config key' and ignores it. Caveat: fallback is a preference, not a filter: if no version in the requirement range is compatible (e.g. bytemuck_derive '>=1.9.0, <1.9.2' with rust-version 1.79) it still picks one and only notes '(requires Rust 1.84)'. Read the 'Adding' lines even when locking succeeds.