% Cargo, Rust’s Package Manager
The easiest way to get Cargo is to get the current stable release of Rust by using the rustup
script:
$ curl -sSf https://static.rust-lang.org/rustup.sh | sh
After this, you can use the rustup
command to also install beta
or nightly
channels for Rust and Cargo.
To install just Cargo, the current recommended installation method is through the official nightly builds. Note that Cargo will also require that Rust is already installed on the system.
Platform | 64-bit | 32-bit |
---|---|---|
Linux binaries | tar.gz | tar.gz |
MacOS binaries | tar.gz | tar.gz |
Windows binaries | tar.gz | tar.gz |
Alternatively, you can build Cargo from source.
To start a new project with Cargo, use cargo new
:
$ cargo new hello_world --bin
We’re passing --bin
because we’re making a binary program: if we were making a library, we’d leave it off.
Let’s check out what Cargo has generated for us:
$ cd hello_world $ tree . . ├── Cargo.toml └── src └── main.rs 1 directory, 2 files
This is all we need to get started. First, let’s check out Cargo.toml
:
[package] name = "hello_world" version = "0.1.0" authors = ["Your Name <you@example.com>"]
This is called a manifest, and it contains all of the metadata that Cargo needs to compile your project.
Here’s what’s in src/main.rs
:
fn main() { println!("Hello, world!"); }
Cargo generated a “hello world” for us. Let’s compile it:
$ cargo build Compiling hello_world v0.1.0 (file:///path/to/project/hello_world)
And then run it:
$ ./target/debug/hello_world Hello, world!
We can also use cargo run
to compile and then run it, all in one step:
$ cargo run Fresh hello_world v0.1.0 (file:///path/to/project/hello_world) Running `target/hello_world` Hello, world!
For more details on using Cargo, check out the Cargo Guide