libcore for low-level Rust
Rust’s standard library is two-tiered: there’s a small core library,
libcore, and the full standard library, libstd, that builds on top of it.
libcore is completely platform agnostic, and requires only a handful of
external symbols to be defined. Rust’s libstd builds on top of libcore,
adding support for things like memory allocation and I/O. Applications using
Rust in the embedded space, as well as those writing operating systems, often
eschew libstd, using only libcore.
As an additional note, while building libraries with libcore is supported
today, building full applications is not yet stable.
To use libcore, add this flag to your crate root:
#![no_std]
This will remove the standard library, and bring the core crate into your
namespace for use:
#![no_std]
use core::cell::Cell;
You can find libcore's documentation here.