Funky new ecosystems == bleeping annoying to use in an existing environment
Just because you have a fancy new programming paradigm that doesn't mean that it makes sense to go your own way on all the bits and pieces that surround the source code.
So, we've been at this game for a while and have an existing build system ready to go; does all the obvious, keeping generated files well away from sources, pulling in sub-dependencis, generating sufficient OSS compliance docs etc. Multiple languages and targets, the usual. Loads of relevant support libraries neatly curated, all version controlled, waiting to give their all to our next project.
Rust does sound interesting, let's start reading about how to get it added into our setup so we can asess how well it'll work for real; there are books on Rust and rustc online, looks good.
Section 1.1 Installation: "If you prefer not to use rustup for some reason, please see the Other Rust Installation Methods page for more options." White hair equals suspicious mind, what could "some reason" mean? Follow the link: "Offline installation. rustup downloads components from the internet on demand. If you need to install Rust without access to the internet, rustup is not suitable." OR, access to the Internet aside, you're in a Serious Business and want some modicum of control over what is being used.
Section 1.3: "Cargo is Rust’s build system and package manager". Um, they've created yet another build sytem of their own, catering specifically to Rust?
Section 7: We are now using new terminology for compilation units? Including calling any old sub-module without a main() a library? "Most of the time when Rustaceans say “crate”, they mean library crate, and they use “crate” interchangeably with the general programming concept of a “library"."
Gritting teeth, carry on reading 'cos that is the job. Get to the FAQ:
Q: "Will Cargo work with C code (or other languages)?" A: "Yes!" "Our solution: Cargo allows a package to specify a script (written in Rust) to run before invoking rustc". Go that route and before you start into your Rust journey you need to know enough Rust to duplicate at least enough of the existing build system to cope with "Building a bundled C library" and "Finding a C library on the host system" - taking into account their methods of avoiding unnecessary rebuilds...
Maybe the next FAQ will ease our woes:
Q: "Can Cargo be used inside of make (or ninja, or ...)" A: "Indeed." ... "We still have some work to do on those fronts, but using Cargo in the context of conventional scripts is something we designed for from the beginning and will continue to prioritize." That is it. No link to any helpful hints.
Look, this is just a load of rants from a crusty, but if Rust wanted to be taken seriously as a language that we should migrate to, it should really help with migration. It is easier - a LOT easier - to drop a COBOL compiler into our build.
And I've not even touched on crates.io