It seems that there is no way to specify which version of rust a crate depends on. As a result, crate authors implement build scripts that check that the version of rust the user is building with is compatible. For example, in Rocket https://github.com/SergioBenitez/Rocket/blob/master/lib/build.rs. This seems like something that Cargo could check while it’s resolving dependencies.
But I’m new to Rust so maybe I’m just missing something (docs or the history for how we got to where we are). Any illumination would be much appreciated.