cargo new
NAME
cargo-new - Create a new Cargo package
SYNOPSIS
cargo new [OPTIONS] PATH
DESCRIPTION
This command will create a new Cargo package in the given directory. Thisincludes a simple template with a Cargo.toml
manifest, sample source file,and a VCS ignore file. If the directory is not already in a VCS repository,then a new repository is created (see —vcs
below).
The "authors" field in the manifest is determined from the environment orconfiguration settings. A name is required and is determined from (first matchwins):
cargo-new.name
Cargo config valueCARGO_NAME
environment variableGIT_AUTHOR_NAME
environment variableGIT_COMMITTER_NAME
environment variableuser.name
git configuration valueUSER
environment variableUSERNAME
environment variableNAME
environment variable
The email address is optional and is determined from:
cargo-new.email
Cargo config valueCARGO_EMAIL
environment variableGIT_AUTHOR_EMAIL
environment variableGIT_COMMITTER_EMAIL
environment variableuser.email
git configuration valueEMAIL
environment variable
See the reference for more information aboutconfiguration files.
See cargo-init(1) for a similar command which will create a new manifestin an existing directory.
OPTIONS
New Options
- —bin
Create a package with a binary target (
src/main.rs
).This is the default behavior.—lib
Create a package with a library target (
src/lib.rs
).—editionEDITION
Specify the Rust edition to use. Default is 2018.Possible values: 2015, 2018
—nameNAME
Set the package name. Defaults to the directory name.
—vcsVCS
Initialize a new VCS repository for the given version control system (git,hg, pijul, or fossil) or do not initialize any version control at all(none). If not specified, defaults to
git
or the configuration valuecargo-new.vcs
, ornone
if already inside a VCS repository.—registryREGISTRY
- This sets the
publish
field inCargo.toml
to the given registry namewhich will restrict publishing only to that registry.
Registry names are defined in Cargo config files.If not specified, the default registry defined by the registry.default
config key is used. If the default registry is not set and —registry
is notused, the publish
field will not be set which means that publishing will notbe restricted.
Display Options
- -v
- —verbose
Use verbose output. May be specified twice for "very verbose" output whichincludes extra output such as dependency warnings and build script output.May also be specified with the
term.verbose
config value.-q
- —quiet
No output printed to stdout.
—colorWHEN
- Control when colored output is used. Valid values:
auto
(default): Automatically detect if color support is available on theterminal.always
: Always display colors.never
: Never display colors.
May also be specified with the term.color
config value.
Common Options
- -h
- —help
Prints help information.
-ZFLAG…
- Unstable (nightly-only) flags to Cargo. Run
cargo -Z help
fordetails.
ENVIRONMENT
See the reference fordetails on environment variables that Cargo reads.
Exit Status
- 0
Cargo succeeded.
101
- Cargo failed to complete.
EXAMPLES
- Create a binary Cargo package in the given directory:
- cargo new foo