# cargo-generate
[![Build status](https://github.com/cargo-generate/cargo-generate/workflows/Build/badge.svg)](https://github.com/cargo-generate/cargo-generate/actions?query=workflow%3ABuild+branch%3Amain+)
[![crates.io](https://img.shields.io/crates/v/cargo-generate.svg)](https://crates.io/crates/cargo-generate)
[![dependency status](https://deps.rs/repo/github/cargo-generate/cargo-generate/status.svg)](https://deps.rs/repo/github/cargo-generate/cargo-generate)
[![Chat on Matrix](https://img.shields.io/matrix/cargo-generate:matrix.org?server_fqdn=matrix.org)](https://matrix.to/#/#cargo-generate:matrix.org)
> cargo, make me a project
`cargo-generate` is a developer tool to help you get up and running quickly with a new Rust
project by leveraging a pre-existing git repository as a template.
Here's an example of using `cargo-generate` with [this template]:
![demo.gif](./demo.gif)
[this template]: https://github.com/rustwasm/wasm-pack-template
## Documentation
See the `cargo-generate` [guide](https://cargo-generate.github.io/cargo-generate/index.html) for complete documentation.
## Templates
One place to find templates is to look for the [cargo-generate topic](https://github.com/topics/cargo-generate) on
GitHub.
## Quickstart
### Installation
```sh
cargo install cargo-generate
```
or if you have [no time, use cargo-binstall](https://github.com/cargo-bins/cargo-binstall):
```sh
cargo binstall cargo-generate
```
### Usage
```sh
# templates on github
cargo generate --git https://github.com/username-on-github/mytemplate.git
# or just
cargo generate username-on-github/mytemplate
# templates on other git platforms
cargo generate gl:username-on-gitlab/mytemplate # translates to https://gitlab.com/username-on-gitlab/mytemplate.git
cargo generate bb:username-on-bitbucket/mytemplate # translates to https://bitbucket.org/username-on-bitbucket/mytemplate.git
cargo generate sr:username-on-sourcehut/mytemplate # translates to https://git.sr.ht/~username-on-sourcehut/mytemplate (note the tilde)
# this scheme is also available for github
cargo generate gh:username-on-github/mytemplate # translates to https://github.com/username-on-github/mytemplate.git
# for a complete list of arguments and options
cargo help generate
```
## License
Licensed under either of
* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE)
or [apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0))
* MIT license ([LICENSE-MIT](LICENSE-MIT) or [opensource.org/licenses/MIT](https://opensource.org/licenses/MIT))
at your option.
### Contributions
Unless you explicitly state otherwise, any contribution intentionally
submitted for inclusion in the work by you, as defined in the Apache-2.0
license, shall be dual licensed as above, without any additional terms or
conditions.
If you want to contribute to `cargo-generate`, please read our [CONTRIBUTING notes].
cargo-generate would not be what it is today without the wonderful contributions from the community. Thank
you!