-
alloc — This feature pulls in alloc and exposes it in all the usual
locations. I.e std::collection gets mapped to alloc::collections and all
the allocation stuff is added to the prelude.
-
std — This feature pulls in the entire standard library and overrides all
other features. This effectively bypasses this crate completely. This is here
to avoid needing feature gates: Just forward your optional std feature to
here, we handle the rest.
-
unstable — This feature also re-exports all unstable modules, which isn’t
possible to do unless you compile with nightly. Unless you need an unstable
module, this crate supports stable rust.
-
compat_hash — This pulls in
hashbrown (which is not
HashDoS-resistant!! but #![no_std]). The point is so you can keep using the
standard, safe, HashMap for those who have the standard library, and fall
back to a less ideal alternative for those who do not. Be advised, however,
that this used in a public function signature could be confusing and should
perhaps be avoided. But that is up to you!
-
compat_sync — This pulls in spin and
provides replacements for several things used in std::sync.
-
compat_macros — This feature adds dummy println, eprintln, dbg,
etc. implementations that do absolutely nothing. The point is that any debug
functions or other loggings that are not required for the library to
function, just stay silent in no_std.
-
compat_cstr — Enable CStr
-
compat_osraw — Enable std::os::raw
-
compat_path — Enable std::path
-
compat_guard_unwrap — .