They're in fact exactly the same, despite the set of implementors being listed as slightly different.
The core
library is designed for bare-metal/low-level tasks, and is thus more barebones than what std
can provide by assuming an operating system exists. However, people using std
will want the stuff that's in core
too (e.g. Add
or Option
or whatever), and so to avoid having to load both std
and core
, std
reexports everything from core
, via pub use
. That is, std
provides aliases/import paths for the things in core
.
There are some unfortunate error messages where the compiler points to the original source of an item, not the reexport, which might not be in a crate you're extern crate
ing.