What I'm most familiar with when it comes to publishing CLI tools is NPM. However, since Rust requires a build step I don't really feel like crates.io is set up for that on its own. There exist OS-specific package managers like apt and homebrew, but I'm not super excited about the prospect of going around and maintaining separate publications on each of those, especially since I don't even use Linux really. And of course Windows would be left out of the loop, even though the tool should build and run just fine there in theory.
I wish there were a CLI-focused package manager for Rust tools that would just download a tool's crate from crates.io, do a release build for the local architecture, and add it to your path. Does this exist (if not it could be my next project...)? And if not, what's the conventional practice here?
Edit: I just discovered the "cargo install" command, which is basically what I described above: https://doc.rust-lang.org/book/ch14-04-installing-binaries.html. I'm still wondering about convention, though. Do people ever publish runnable crates on crates.io and call it a day?