Find a file
Alex Crichton 79942fea1b Implement renaming dependencies in the manifest
This commit implements a new unstable feature for manifests which allows
renaming a crate when depending on it. For example you can do:

```toml
cargo-features = ["dependencies-as"]

...

[dependencies]
foo = "0.1"
bar = { version = "0.1", registry = "custom", package = "foo" }
baz = { git = "https://github.com/foo/bar", package = "foo" }
```

Here three crates will be imported but they'll be made available to the Rust
source code via the names `foo` (crates.io), `bar` (the custom registry), and
`baz` (the git dependency). The *package* name, however, will be `foo` for all
of them. In other words the git repository here would be searched for a crate
called `foo`. For example:

```rust
extern crate foo; // crates.io
extern crate bar; // registry `custom`
extern crate baz; // git repository
```

The intention here is to enable a few use cases:

* Enable depending on the same named crate from different registries
* Allow depending on multiple versions of a crate from one registry
* Removing the need for `extern crate foo as bar` syntactically in Rust source

Currently I don't think we're ready to stabilize this so it's just a nightly
feature, but I'm hoping we can continue to iterate on it!
2018-02-12 15:15:39 -08:00
src Implement renaming dependencies in the manifest 2018-02-12 15:15:39 -08:00
tests Implement renaming dependencies in the manifest 2018-02-12 15:15:39 -08:00
.gitignore Delete Cargo.lock from this repo 2017-10-18 07:43:15 -07:00
.travis.yml Delete the old docs, lift up the new 2018-01-05 11:10:55 -08:00
appveyor.yml We no longer need to workaround AppVeyor's SSL revocation 2017-12-15 09:38:44 -06:00
ARCHITECTURE.md Fix typos and reword slightly 2017-06-13 21:40:58 +03:00
Cargo.toml Require at least version 0.1.9 of jobserver crate 2018-01-31 10:16:01 +01:00
CONTRIBUTING.md Describe E-mentor label in contributing.md 2017-10-02 22:11:09 +03:00
LICENSE-APACHE Add the standard Rust Apache/MIT license 2014-06-24 12:26:13 -07:00
LICENSE-MIT Remove inaccurate (misattributed) copyright notices 2017-07-26 17:19:24 -07:00
LICENSE-THIRD-PARTY Clean whitespace 2015-10-06 13:15:40 -04:00
README.md Fix link to documentation 2018-02-07 23:36:54 +01:00
rustfmt.toml Add rustfmt.toml with formatting disabled 2017-10-31 22:31:02 +01:00

Cargo

Cargo downloads your Rust projects dependencies and compiles your project.

Learn more at https://doc.rust-lang.org/cargo/

Code Status

Build Status Build Status

Installing Cargo

Cargo is distributed by default with Rust, so if you've got rustc installed locally you probably also have cargo installed locally.

Compiling from Source

Cargo requires the following tools and packages to build:

  • python
  • curl (on Unix)
  • cmake
  • OpenSSL headers (only for Unix, this is the libssl-dev package on ubuntu)
  • cargo and rustc

First, you'll want to check out this repository

git clone --recursive https://github.com/rust-lang/cargo
cd cargo

With cargo already installed, you can simply run:

cargo build --release

Adding new subcommands to Cargo

Cargo is designed to be extensible with new subcommands without having to modify Cargo itself. See the Wiki page for more details and a list of known community-developed subcommands.

Releases

High level release notes are available as part of Rust's release notes. Cargo releases coincide with Rust releases.

Reporting issues

Found a bug? We'd love to know about it!

Please report all issues on the github issue tracker.

Contributing

See CONTRIBUTING.md. You may also find the arhitecture documentation useful (ARCHITECTURE.md).

License

Cargo is primarily distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE and LICENSE-MIT for details.

Third party software

This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/).

In binary form, this product includes software that is licensed under the terms of the GNU General Public License, version 2, with a linking exception, which can be obtained from the upstream repository.

See LICENSE-THIRD-PARTY for details.