4 ms·
Cargo and crates.io is easily as simple as npm for installation and distribution. I find it to be more reliable than npm in general. Generally it’s very easy to
by bluejekyll 3y ago
Cargo and crates.io is easily as simple as npm for installation and distribution. I find it to be more reliable than npm in general. Generally it’s very easy to write system agnostic software in Rust, as most of the foundational libraries abstract that away.
So when you say “compiled app” you might be referring instead to C or C++ apps, which don’t generally have as simple and common a distribution model. Rust is entirely different, and incorporated a lot of design decisions about how to package software from npm and other languages.
- andygeorge 3y agoCargo is still a dev tool and isn't a great distribution solution.
- bluejekyll 3y agoI disagree. Cargo is a great distribution tool, for Rust projects. I just tell people, first install rust, then just `cargo install` Second, this was in response to an npm is simpler comment; npm and cargo are absolutely the same category of tool.
- satvikpendem 3y agoI actually recommend cargo install cargo-binstall first, then cargo install <crate>. This is because it is quite annoying to compile packages every time you want to install something new whereas binstall distributes binaries instead, much faster.
- bluejekyll 3y agoFeels like we need a single command for that, I have two goals for my workflow (like maybe bininstall should be included in Cargo): 1) what’s the easiest way to give people access to a tool I just wrote, `cargo publish` 2) what’s the easiest way for someone to use it, as few steps as possible, right now it’s `install rust` && `cargo install`. Once I get to three or more steps on 2 I tend to turn to just or make depending on the context.
- shzhdbi09gv8ioi 3y agoYou should combine step 1 and 2 in CI. Just tag a version in your git, push to remote and have CI auto build a release for you. Use github actions or other setup for other backends. (this is language agnostic and a reasonable thing to learn as a dev). Or if you must live in the cargo command, go nuts with cargo-release. https://github.com/crate-ci/cargo-release https://github.com/crate-ci/cargo-release https://github.com/cargo-bins/release-pr https://github.com/cargo-bins/release-pr
- andygeorge 3y ago> I just tell people, first install rust, then just `cargo install` local compilation may work for you and other individuals, but "just cargo install" can immediately run into issues if you're trying to deploy something to things that aren't dev workstations > npm and cargo are absolutely the same category of tool as a dev tool? absolutely. as a production distribution solution? definitely not
- arp242 3y agoThe overlap between people who want to run something like ESLint and people with dev workstations is very close to 100%.
- bluejekyll 3y ago> as a production distribution solution? definitely not If you’re talking about distributing Rust projects, sure it’s fine. Generally though, if you’re orchestrating a bunch of other things outside the rust software itself, I’d turn to just. npm is still mainly used in JavaScript and Typescript scenarios, so I think you’re kinda splitting hairs if you’re suggesting it’s a general purpose tool.
- andygeorge 3y agothere's a reason `cargo install` is usually the last distribution option that maintainers of rust software provide ¯\_(ツ)_/¯