rust/library/rustc-std-workspace-core
Jade 3cf820e17d rfc3052: Remove authors field from Cargo manifests
Since RFC 3052 soft deprecated the authors field anyway, hiding it from
crates.io, docs.rs, and making Cargo not add it by default, and it is
not generally up to date/useful information, we should remove it from
crates in this repo.
2021-07-29 14:56:05 -07:00
..
Cargo.toml rfc3052: Remove authors field from Cargo manifests 2021-07-29 14:56:05 -07:00
lib.rs
README.md Fix rustc-std-workspace-core documentation 2020-12-20 15:23:21 +08:00

The rustc-std-workspace-core crate

This crate is a shim and empty crate which simply depends on libcore and reexports all of its contents. The crate is the crux of empowering the standard library to depend on crates from crates.io

Crates on crates.io that the standard library depend on need to depend on the rustc-std-workspace-core crate from crates.io, which is empty. We use [patch] to override it to this crate in this repository. As a result, crates on crates.io will draw a dependency edge to libcore, the version defined in this repository. That should draw all the dependency edges to ensure Cargo builds crates successfully!

Note that crates on crates.io need to depend on this crate with the name core for everything to work correctly. To do that they can use:

core = { version = "1.0.0", optional = true, package = 'rustc-std-workspace-core' }

Through the use of the package key the crate is renamed to core, meaning it'll look like

--extern core=.../librustc_std_workspace_core-XXXXXXX.rlib

when Cargo invokes the compiler, satisfying the implicit extern crate core directive injected by the compiler.