Bird
Raised Fist0
Rustprogramming~5 mins

Cargo dependency management in Rust - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is Cargo in Rust?
Cargo is Rust's package manager and build system. It helps manage dependencies, compile code, and build packages.
Click to reveal answer
beginner
How do you add a new dependency to a Rust project using Cargo?
You add the dependency under the [dependencies] section in the Cargo.toml file with the package name and version.
Click to reveal answer
intermediate
What command updates all dependencies to the latest allowed versions in Cargo?
The command is cargo update. It updates the Cargo.lock file with the newest versions allowed by Cargo.toml.
Click to reveal answer
intermediate
What is the purpose of the Cargo.lock file?
Cargo.lock records the exact versions of dependencies used to ensure reproducible builds across different machines.
Click to reveal answer
advanced
How can you specify a dependency from a Git repository in Cargo.toml?
You specify the dependency with a git key and the repository URL, for example:
mycrate = { git = "https://github.com/owner/repo.git" }
Click to reveal answer
Where do you declare dependencies for a Rust project?
AIn the Cargo.lock file
BIn the main.rs file
CIn the Cargo.toml file
DIn the src folder
What does the command cargo build do?
AUpdates Cargo.toml
BOnly downloads dependencies
CRemoves unused dependencies
DCompiles the project and downloads dependencies if needed
What file ensures that all developers use the same dependency versions?
ACargo.lock
BCargo.toml
Cmain.rs
DREADME.md
How do you specify a dependency version range in Cargo.toml?
A"^1.2.3" means compatible with 1.2.3
B"=1.2.3" means any version
C"~1.2.3" means older than 1.2.3
D"*" means no dependencies
Which command updates the Cargo.lock file to the latest allowed dependency versions?
Acargo run
Bcargo update
Ccargo clean
Dcargo new
Explain how Cargo manages dependencies in a Rust project.
Think about where dependencies are listed and how Cargo ensures consistent builds.
You got /5 concepts.
    Describe how to add a dependency from a Git repository using Cargo.
    Focus on the syntax inside Cargo.toml for git dependencies.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of the Cargo.toml file in a Rust project?
      easy
      A. To store the project's binary executable
      B. To write the main Rust code logic
      C. To compile the Rust project manually
      D. To list and manage the project's dependencies

      Solution

      1. Step 1: Understand Cargo.toml role

        The Cargo.toml file is used to declare dependencies and project metadata.
      2. Step 2: Differentiate from other files

        The Rust code logic is in src/main.rs, not Cargo.toml. Compilation is done by Cargo commands, not by the file itself.
      3. Final Answer:

        To list and manage the project's dependencies -> Option D
      4. Quick Check:

        Cargo.toml manages dependencies [OK]
      Hint: Remember: Cargo.toml lists dependencies, not code [OK]
      Common Mistakes:
      • Confusing Cargo.toml with source code files
      • Thinking Cargo.toml compiles code
      • Assuming Cargo.toml stores executables
      2. Which of the following is the correct syntax to add the dependency serde version 1.0 in Cargo.toml?
      easy
      A. serde = "1.0"
      B. serde: "1.0"
      C. "serde" = 1.0
      D. serde => "1.0"

      Solution

      1. Step 1: Recall Cargo.toml dependency syntax

        Dependencies are listed as name = "version" pairs in Cargo.toml.
      2. Step 2: Match correct syntax

        serde = "1.0" matches the correct syntax: serde = "1.0". Other options use invalid symbols.
      3. Final Answer:

        serde = "1.0" -> Option A
      4. Quick Check:

        Dependency syntax = name = "version" [OK]
      Hint: Use equals and quotes for version in Cargo.toml [OK]
      Common Mistakes:
      • Using colon or arrow instead of equals
      • Omitting quotes around version
      • Putting quotes around dependency name incorrectly
      3. Given this Cargo.toml snippet:
      [dependencies]
      regex = "1.5"
      

      What happens when you run cargo build for the first time?
      medium
      A. Cargo throws an error because regex is not installed manually
      B. Cargo ignores the regex crate and builds only your code
      C. Cargo downloads and compiles the regex crate version 1.5
      D. Cargo compiles your code but skips dependencies

      Solution

      1. Step 1: Understand Cargo build behavior

        When building, Cargo checks dependencies listed in Cargo.toml and downloads missing ones.
      2. Step 2: Apply to regex dependency

        Since regex 1.5 is listed, Cargo downloads and compiles it automatically on first build.
      3. Final Answer:

        Cargo downloads and compiles the regex crate version 1.5 -> Option C
      4. Quick Check:

        cargo build downloads dependencies [OK]
      Hint: cargo build auto-downloads missing dependencies [OK]
      Common Mistakes:
      • Thinking dependencies must be installed manually
      • Assuming cargo build ignores dependencies
      • Expecting errors if dependencies are new
      4. You added a dependency in Cargo.toml but get an error: package not found when running cargo build. What is the likely cause?
      medium
      A. The dependency name is misspelled or does not exist on crates.io
      B. You forgot to write cargo update before building
      C. Cargo.toml must be renamed to Cargo.lock
      D. Rust compiler version is too old

      Solution

      1. Step 1: Analyze error meaning

        "Package not found" means Cargo cannot find the named crate in the registry.
      2. Step 2: Identify common causes

        This usually happens if the dependency name is misspelled or the crate does not exist on crates.io.
      3. Final Answer:

        The dependency name is misspelled or does not exist on crates.io -> Option A
      4. Quick Check:

        Package not found = wrong dependency name [OK]
      Hint: Check spelling of dependency names carefully [OK]
      Common Mistakes:
      • Thinking cargo update fixes missing package errors
      • Renaming Cargo.toml to Cargo.lock
      • Blaming Rust version without checking dependency name
      5. You want to use two different versions of the same crate log in your project: version 0.4 for your code and version 0.3 for a dependency. How can Cargo handle this situation?
      hard
      A. Cargo will fail to build due to version conflict
      B. Cargo allows multiple versions of the same crate to coexist in the dependency tree
      C. You must manually merge the versions into one in Cargo.toml
      D. Cargo ignores the older version and uses only the newest

      Solution

      1. Step 1: Understand Cargo's version handling

        Cargo supports multiple versions of the same crate in the dependency tree to avoid conflicts.
      2. Step 2: Apply to example

        Your code can use log 0.4 while a dependency uses log 0.3; Cargo compiles both separately.
      3. Final Answer:

        Cargo allows multiple versions of the same crate to coexist in the dependency tree -> Option B
      4. Quick Check:

        Cargo supports multiple crate versions [OK]
      Hint: Cargo handles multiple crate versions automatically [OK]
      Common Mistakes:
      • Assuming Cargo fails on version conflicts
      • Trying to merge versions manually
      • Thinking Cargo ignores older versions
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard