## First Steps with Cargo

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 pass `--lib`.

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!

### Going further

For more details on using Cargo, check out the Cargo Guide