this post was submitted on 04 Oct 2024
12 points (80.0% liked)

Rust

6029 readers
1 users here now

Welcome to the Rust community! This is a place to discuss about the Rust programming language.

Wormhole

[email protected]

Credits

  • The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)

founded 1 year ago
MODERATORS
 

I really like the idea of a package/dependency manager. It just seems that when ever I am reading a tutorial and they want to import something that is not standard they say write this in to your TOMOL not cargo install it. Like when reading python docs they all say to use pip or something. Sorry it just seems that Cargo is somewhat overlooked or is it just my perception?

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 10 points 1 month ago

Presumably you're using an IDE or smart text editor to run your code. Otherwise you'd be running e.g. cargo build and cargo test from the command-line quite often.

The difference to Pip is that Cargo detects changes in the Cargo.toml and will automatically install all the necessary dependencies, when you run cargo build or cargo test (or other similar commands). And since your IDE / editor runs these for you, it looks to you like you're just editing a text file.

It should also be said that Pip has a somewhat unusual workflow in that you pip install everything, which would normally install it globally into your operating system. And then with venv, you kind intercept that to install it into the .venv/ folder in your repo instead.
This workflow doesn't make a ton of sense, if you always have a repo folder where the dependencies can be installed into, so Rust just doesn't do it that way.
(In particular, installing dependencies globally quickly causes issues when different projects have different version requirements for the same library.)

There is a cargo install command, but it's only for installing applications, not libraries.