Introduction - The Cargo Book Introduction 1. Getting Started 1.1. Installation 1.2. First Steps with Cargo 2. Cargo Guide 2.1. Why Cargo Exists 2.2. Creating a New Package 2.3. Working on an Existing Package 2.4. Dependencies 2.5. Package Layout 2.6. Cargo.toml vs Cargo.lock 2.7. Tests 2.8. Continuous Integration 2.9. Cargo Home 2.10. Build Cache 3. Cargo Reference 3.1. Specifying Dependencies 3.1.1. Overriding Dependencies 3.2. The Manifest Format 3.2.1. Cargo Targets 3.3. Workspaces 3.4. Features 3.4.1. Features Examples 3.5. Profiles 3.6. Configuration 3.7. Environment Variables 3.8. Build Scripts 3.8.1. Build Script Examples 3.9. Publishing on crates.io 3.10. Package ID Specifications 3.11. Source Replacement 3.12. External Tools 3.13. Registries 3.14. Dependency Resolution 3.15. SemVer Compatibility 3.16. Unstable Features 4. Cargo Commands 4.1. General Commands 4.1.1. cargo 4.1.2. cargo help 4.1.3. cargo version 4.2. Build Commands 4.2.1. cargo bench 4.2.2. cargo build 4.2.3. cargo check 4.2.4. cargo clean 4.2.5. cargo doc 4.2.6. cargo fetch 4.2.7. cargo fix 4.2.8. cargo run 4.2.9. cargo rustc 4.2.10. cargo rustdoc 4.2.11. cargo test 4.3. Manifest Commands 4.3.1. cargo generate-lockfile 4.3.2. cargo locate-project 4.3.3. cargo metadata 4.3.4. cargo pkgid 4.3.5. cargo tree 4.3.6. cargo update 4.3.7. cargo vendor 4.3.8. cargo verify-project 4.4. Package Commands 4.4.1. cargo init 4.4.2. cargo install 4.4.3. cargo new 4.4.4. cargo search 4.4.5. cargo uninstall 4.5. Publishing Commands 4.5.1. cargo login 4.5.2. cargo owner 4.5.3. cargo package 4.5.4. cargo publish 4.5.5. cargo yank 5. FAQ 6. Appendix: Glossary 7. Appendix: Git Authentication Light (default) Rust Coal Navy Ayu The Cargo Book The Cargo Book Cargo is the Rust package manager. Cargo downloads your Rust package's dependencies, compiles your packages, makes distributable packages, and uploads them to crates.io, the Rust community’s package registry. You can contribute to this book on GitHub. Sections Getting Started To get started with Cargo, install Cargo (and Rust) and set up your first crate. Cargo Guide The guide will give you all you need to know about how to use Cargo to develop Rust packages. Cargo Reference The reference covers the details of various areas of Cargo. Cargo Commands The commands will let you interact with Cargo using its command-line interface. Frequently Asked Questions Appendices: Glossary Git Authentication Other Documentation: Changelog — Detailed notes about changes in Cargo in each release. Rust documentation website — Links to official Rust documentation and tools.