> Cargo is the [Rust](https://www.rust-lang.org/) [_package manager_](https://doc.rust-lang.org/cargo/appendix/glossary.html#package-manager). Cargo downloads your Rust [package](https://doc.rust-lang.org/cargo/appendix/glossary.html#package )'s dependencies, compiles your packages, makes distributable packages, and uploads them to [crates.io](https://crates.io/), the Rust community’s [_package registry_](https://doc.rust-lang.org/cargo/appendix/glossary.html#package-registry ).
Cargo does four things:
- Introduces two metadata files with various bits of package information.
- Fetches and builds your package’s dependencies.
- Invokes `rustc` or another build tool with the correct parameters to build your package.
- Introduces conventions to make working with Rust packages easier.
```ad-info
To a large extent, Cargo normalizes the commands needed to build a given program or library
```
## Quick Installation
The easiest way to get Cargo is to install the current stable release of [Rust](https://www.rust-lang.org/) by using `rustup`. Installing Rust using `rustup` will also install `cargo`.
On Linux and macOS systems, this is done as follows:
`curl https://sh.rustup.rs -sSf | sh`
It will download a script, and start the installation. If everything goes well, you’ll see this appear:
`Rust is installed now. Great!`
## Useful commands
To start a new package we simply run
- `$ cargo new hello_world`